本章内容为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