vector

来源:互联网 发布:皇室战争烈焰精灵数据 编辑:程序博客网 时间:2024/05/16 01:56

本章内容为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位置插入13for( 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

0 0