|
vector类似于数组,可以使用下标[]访问:
vector<int> v(10);
v[0] = 101;
注意到这里预先给10个元素分配了空间。你也可以使用vector提供的插入函数来动态的扩展容器。成员函数push_back()就在vector的尾部添加了一个元素:
v.push_back(3);
也可以用insert()函数完成同样的工作:
v.insert(v.end(), 3);
这里insert()成员函数需要两个参数:一个指向容器中指定位置的迭代器(iterator),一个待插入的元素。insert()将元素插入到迭代器指定元素之前。
现在对迭代器(Iterator)做点解释。Iterator是指针(pointer)的泛化,iterator要求定义operator*,它返回指定类型的值。Iterator常常和容器联系在一起。例子:
vector<int> v(3);
v[0] = 5;
v[1] = 2;
v[2] = 7;
vector<int>::iterator first = v.begin();
vector<int>::iterator last = v.end();
while (first != last)
cout << *first++ << “ “;
上面代码的输出是:
5 2 7
begin()返回的是vector中第一个元素的iterator,而end()返回的并不是最后一个元素的iterator,而是past the last element。在STL中叫past-the-end iterator。
|
