赞
踩
图源:https://www.bilibili.com/video/BV1UT4y1R7Yv?p=129&spm_id_from=pageDriver
vector<int> v1;
vector<int>::iterator it = v1.begin();
for(; it != v1.end(); it++){
cout << *it << endl;
}
vector<int> v1;//1 2 3 4 5
vector<int> v2(v1.begin(), v1.end());//1 2 3 4 5
vector<int> v3(3, 111);//111 111 111
vector<int> v4(v1);//1 2 3 4 5
vector<int> v1;
v1.assgin(v.begin(), v.end());
vector<int> v2;
v2.assgin(3,111);
vector<int> v3;
v3 = v1;
cout << v.front() << endl;//头元素
cout << v.back() << endl;//尾元素
cout << v[1] << endl;
cout << v.at(1) << endl;
v.front() = 1;
v.back() = 1;
v[1] = 5;
v.at(1) = 6;
//22 33
v.push_back(100);//尾插
//22 33 100
v.insert(v.begin(),3,4);
//4 4 4 22 33 400
//4 4 4 22 33 400
v.pop_back();//尾删
//4 4 4 22 33
v.erase(v.begin());
//4 4 22 33
v.erase(v.begin()+2,v.end());
//4 4
v.clear();
//
cout << v.capacity() << endl;//容量是容器可以存储元素的个数
cout << v.size() << endl;//大小是当前容器内元素的个数
注意:
容器满了后 capacity() == size() 时,再添加元素,容器就要找一块更大的内存空间,然后将原数据拷贝新空间,并释放原空间。此时,指向原容器的迭代器就失效了。
if(v.empty())//若容器空,则为真
//v: 1 2 3
v.resize(5)
//v: 1 2 3 0 0
//v: 1 2 3
v.resize(5,111)
//v: 1 2 3 111 111
//v: 1 2 3 4 5 6 7
v.resize(5)
//v: 1 2 3 4 5
vector<int> v;//容量为0,大小为0
v.reserve(100);//容量为100,大小为0 //预留位置不初始化,元素不可访问
//v1: 1 2 3 4 5
//v2: 11 21 31 41 51 61 71
v1.swap(v2);
//v1: 11 21 31 41 51 61 71
//v2: 1 2 3 4 5
vector<int>匿名对象(v).swap(v);
利用拷贝构造函数,拷贝v的有效数据来创建一个新的对象,即匿名对象。
匿名对象只存在于构造该对象的那行代码,离开构造匿名对象的那行代码后立即调用析构函数。
vector< vector<int> > v;
v.push_back(v1);
v.push_back(v2);
v.push_back(v3);
vector< vector<int> > ::iterator it;
for(it = v.begin();it != v.end();it++){
//*it == vector<int>
vector<int>::iterator mit;
for(mit = (*it).begin();mit != (*it).end();mit++){
//*mit == int
cout << *mit <<" ";
}
cout << endl;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。