vector功能类似于数组
1、vector构造函数——创建vector容器的四种方式
#include
#include
#include
using namespace std;
void print(vector& v){
for(vector::iterator it = v.begin();it != v.end();it++){
cout<<*it<<" ";
}
cout< v; //采用模板实现类实现,默认构造函数
vector v1;
for(int i=0;i<10;i++){
v1.push_back(i);
}
print(v1);
//vector(v.begin(), v.end()); //将v[begin(), end())区间中的元素拷贝给本身。
vector v2(v1.begin(),v1.end());
print(v2);
//vector(n, elem); //构造函数将n个elem拷贝给本身。
vector v3(10,100);
print(v3);
//vector(const vector &vec); //拷贝构造函数。
vector v4(v3);
print(v4);
}
int main(){
test();
return 0;
}
2、vector赋值操作——三种复制方法
#include
#include
#include
using namespace std;
void print(vector& v){
for(vector::iterator it = v.begin();it != v.end();it++){
cout<<*it<<" ";
}
cout< v; //采用模板实现类实现,默认构造函数
vector v1;
for(int i=0;i<10;i++){
v1.push_back(i);
}
print(v1);
//vector& operator=(const vector &vec); //重载等号操作符
vector v2;
v2 = v1;
print(v2);
//assign(begin, end); //将[begin, end)区间中的数据拷贝赋值给本身。
vector v3;
v3.assign(v1.begin(),v1.end());
print(v3);
//assign(n, elem); //将n个elem拷贝赋值给本身。
vector v4;
v4.assign(10,100);
print(v4);
}
int main(){
test();
return 0;
}
3、vector容量和大小操作
#include
#include
#include
using namespace std;
void print(vector& v){
for(vector::iterator it = v.begin();it != v.end();it++){
cout<<*it<<" ";
}
cout< v; //采用模板实现类实现,默认构造函数
vector v1;
for(int i=0;i<10;i++){
v1.push_back(i);
}
print(v1);
//empty(); //判断容器是否为空
if(v1.empty()){
cout<<"v1为空"<
4、vector插入和删除
#include
#include
#include
using namespace std;
void print(vector& v){
for(vector::iterator it = v.begin();it != v.end();it++){
cout<<*it<<" ";
}
cout< v; //采用模板实现类实现,默认构造函数
vector v1;
//push_back(ele); //尾部插入元素ele
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
v1.push_back(50);
print(v1);//10 20 30 40 50
//pop_back(); //删除最后一个元素
v1.pop_back();
print(v1);//10 20 30 40
//insert(const_iterator pos, ele); //迭代器指向位置pos插入元素ele
v1.insert(v1.begin(),100);
print(v1);//100 10 20 30 40
// insert(const_iterator pos, int count,ele); //迭代器指向位置pos插入count个元素ele
v1.insert(v1.begin(),2,1000);
print(v1);//1000 1000 100 10 20 30 40
//erase(const_iterator pos); //删除迭代器指向的元素
v1.erase(v1.begin());
print(v1);//1000 100 10 20 30 40
// erase(const_iterator start, const_iterator end); //删除迭代器从start到end之间的元素
v1.erase(v1.begin(),v1.end());
print(v1);//空
//clear(); //删除容器中所有元素
v1.clear();
print(v1);//空
}
int main(){
test();
return 0;
}
5、vector数据读取
#include
#include
#include
using namespace std;
void test(){
//vector v; //采用模板实现类实现,默认构造函数
vector v1;
for(int i=0;i<10;i++){
v1.push_back(i);
}
//operator[]; //返回索引idx所指的数据
for(int i=0;i
6、vector互换容器
swap(vec);
//
将
vec
与本身的元素互换
7、vector预留空间
reserve(int len)
;
//
容器预留
len
个元素长度,预留位置不初始化,元素不可访问。