MENU

C++STL 中 vector 使用策略(一)

March 11, 2018 • Read: 4718 • c/c++阅读设置

vector 是 STL 中一种可变大小数组的序列容器。就像数组一样,vector 也采用连续存储空间来存储元素,也就是意味着可以采用下标对 vector 的元素进行访问,和数组一样高效,但是又不像数组,它的大小是动态改变的。

为了可以使用 vector,必须在你的头文件中包含下面的代码

  • #include <vector>

创建一个 vector展开目录

  • //创建一个type类型的空vector对象a
  • vector<type> a;
  • //创建包含500个type类型的vector
  • vector<type> a(500);
  • //创建包含500个tyep类型的vector,并且都初始化为0
  • vector<type> a(500,0);
  • //创建一个a的拷贝b
  • vector<type> b(a);

向 vector 添加一个数据展开目录

vector 添加数据的缺省方法是 push_back ()。push_back () 函数表示将数据添加到 vector 的尾部,并按需分配内存。例如,向 vector<int> a 中添加 9 个数据

  • for(int i = 1;I < 10;i++)
  • {
  • cin>>n;
  • a.push_back(n);
  • }

访问 vector 中的数据展开目录

  • vector<int> v;
  • for(int i = 0; i < 7; i++)
  • {
  • v.push_back(i);
  • }
  • cout<<v.at(6)<<endl;
  • cout<<v[6];

删除 vector 中的数据展开目录

  • vector<int>::iterator it = v.begin();
  • while(it != v.end())
  • {
  • if(x == *it)//x为要删除的值,不是下标
  • {
  • //erase(it);容器在删除或插入一个元素后,原来的迭代器会失效
  • it = v.erase(it);//这才是正确用法
  • }
  • else
  • ++it;
  • }
  • it = v.begin();
  • while(it != v.end())
  • {
  • cout<<*it<<endl;
  • it++;
  • }
Last Modified: November 2, 2018
Archives Tip
QR Code for this page
Tipping QR Code