网管联盟-网管软件下载-搞乐乐网站全力打造网管之家

当前位置: 网管>编程开发>C++>

标准模板库STL(Standard Template Library)(8)

时间:2009-04-07 16:36来源:未知 作者:admin 点击:
vector类似于数组,可以使用下标 [] 访问: vectorint v(10); v[0] = 101; 注意到这里预先给10个元素分配了空间。你也可以使用vector提供的插入函数来动态的扩展容器。成员函数 push_back() 就在vector的尾部添加了
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。

 
 
end()返回的iterator
John
Tom
Peter
Andy
类型value_type的对象
begin()返回的iterator
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容