本章内容为coursera课程C++程序设计中第八周的课件的整理
vector 可变长的动态数组 必须包含头文件 #include <vector> 支持 随机访问迭代器 • 根据下标随机访问某个元素时间为常数 • 在尾部添加速度很快 • 在中间插入慢 所有STL算法 都能对vector操作 vector的成员函数 例1:
#include <iostream> #include <vector> using namespace std; int main() { int i; int a[5] = {1,2,3,4,5}; vector<int> v(5); cout << v.end() - v.begin() << endl; for( i = 0; i < v.size(); i ++ ) v[i] = i; v.at(4) = 100; for( i = 0; i < v.size(); i ++ ) cout << v[i] << "," ; cout << endl; vector<int> v2(a,a+5); //构造函数 v2.insert(v2.begin() + 2,13); //在begin()+2位置插入13 for( i = 0; i < v2.size(); i ++ ) cout << v2.at(i) << "," ; }输出: 5 0,1,2,3,100, 1,2,13,3,4,5, 二维动态数组 vector< vector<int> > v(3); //v有3个元素, //每个元素都是vector<int> 容器 例2: #include <iostream> #include <vector> using namespace std; int main() { vector<vector<int >> v(3); for(int i=0; i<v.size(); ++i) for(int j=0; j<4; ++j) v[i].push_back(j); for(int i=0; i<v.size(); ++i){ for(int j=0; j<v[i].size(); ++j) cout<<v[i][j]<<“ ”; cout<<endl; } return 0; } 输出: 0 1 2 3 0 1 2 3 0 1 2 3