原创
【博客大赛】《C++ Primer》学习笔记(八)Vector
Vector是C语言里面没有的概念。
Vector是Container(容器)的一种,有关容器更多的留在后面再说。
要使用Vector,首先要包含头文件,并且声明命名空间:
#include
using std::vector;
Vector是一个类的模板(template)。
C++有类的模板,也有函数的模板。以后会学习怎样创建模板,现在只需要了解如何使用它。
模板自身并不是类或者函数,它们是用来创建类或者函数的指令。这个过程称为实例化。
为了将模板实例化,我们需要提供额外的信息。
为了将Vector实例化,我们需要提供的额外信息是Vector持有的对象类型:
vector ivec;
vector sales_vec;
vector> file; //旧版的C++需要写成 >
我们可以创建任何类型的Vector,整型、类或者Vector自身。
引用并不是对象,因此不能为引用创建Vector。
有很多种方法可以初始化Vector:
vector v1
vector v2(v1)
vector v2 = v1
vector v3(n, val)
vector v4(n)
vector v5{a,b,c...}
vector v5 = {a,b,c...}
vector v1;//它定义了一个空的向量
空向量看起来没什么用,但是我们可以动态的往向量里面添加内容。
实际上,大部分使用都是这么做的。
Vector初始化的时候,使用括号(parentheses)和使用大括号(curly braces),
有非常有意思的区别。编译器会聪明的配置它们。
----------------
如何为Vector增加元素?
使用push_back增加新的最后一个。
先来一个整型数的例子:
vector v2;
for (int i = 0; i != 100; i++)
v2.push_back(i);
再来一个string的例子:
string word;
vector text;
while (cin >> word)
text.push_back(word);
由于Vector的长度可变,因此在使用range for的时候,不要在循环里面增加它的长度。
----------------
v.empty()
v.size()
v.push_back()
v[n]
v1 = v2
v1 = {a,b,c...}
v1 == v2
v1 != v2
<,<=,>,>=
这些操作和string类似。
size_type的用法也和string类似,除了vector必须指定元素类型:
vector::size_type
同string一样,vector也可以使用下标来访问元素;
同string一样,vector的下标越界也是不会被检查的。
文章评论(0条评论)
登录后参与讨论