向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
一.
vector<int>
nums;//不指定长度
vector<int>
nums(n); // 指定长度为n
1.增
插入元素: vec.insert(vec.begin()+i,a);在第i个元素后面插入a;
nums.push_back(1);//直接从数组末端添加;
nums[i] = 1;//直接赋值给第i个位置;
2.删
nums.resize(nums.size-i); //直接将数组长度减小,某种方式上删掉了后面i个
nums.pop_back();//删掉最后一个元素;
3.查
使用下标访问元素,cout<<dp[0]<<endl;记住下标是从0开始的。
使用迭代器访问元素.vector::iterator it;
for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;
二.
1.
vector<int>& a;
vector<int> a;
带&表示传入函数的是vector的引用(即物理位置),函数内部对vector改动,vector就会改变;
不带&表示传入的是vector的复制品(开辟了另一块位置),函数内部对其改动,不会影响原本的vector;
2.
vector< vector<int> > v(m, vector<int>(n) );
定义了一个vector容器,元素类型为vector,初始化为包含m个vector对象,每个对象都是一个新创立的vector对象的拷贝,而这个新创立的vector对象被初始化为包含n个0。
从结果上看,类似于创建了一个m×n的二维数组,而且可以通过v[i][j]的方式来访问元素(vector支持下标访问元素)。
3.
int b[7]={1,2,3,4,5,9,8};
vector<int> a(b,b+7);
int main(){
for (int i = 0; i < a.size(); i++)
cout << a[i] << endl;
cout<<a.size();//输出7
return 0;
}