向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。
它在存储的能力上比数组强,可以用来存储基本的类型,如int,double等,还可以存储指针和结构体;
基本的声明
vector<int> a;//声明了一个int 类型的a vector变量,
还有其他的声明方式
vector<int> a{1,2,3,4}; //基本的a的赋值 vector<int> b(10,1);//声明了一个b变量,长度为10且全为1; vector<int> b1(b) ; //把b中的值全赋值到b1中 // cout<<b1[1]; vector<int> b2(a.begin(),a.begin()+3);//把a中第1个到第3个元素赋值给b2 // cout<<b2[2];
元素的访问与输入
vector<int> a(8,0); //声明一个大小为8,元素全为0的数组 cin>>a[1]; cin>>a[0]; cin>>a[2]; for(int i=0;i<a.size();i++){ cout<<a[i]<<endl; } return 0;
就像C里使用的数组方式一样
vector的基本操作及方法
vector<int> a(8,0); //声明一个大小为8,元素全为0的数组 a.size();//vector中没有使用length来求长度,不同于string if(a.empty()){ //代码 } a.clear(); a.insert(a.begin(),2);//把2放在首元素之前 a.insert(a.begin(),3,2); //把2插入到首元素的第一个到第三个元素的位置上 b.insert(b.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前 a.erase(a.begin())//将起始位置的元素删除 a.erase(a.begin(),a.begin()+5) //从第一个到第五个元素全删除 b.swap(a) ; //a向量与b向量进行交换
map作为stl的一个关联容器,提供一对一的操作方式,map<key,int>,key在map中是唯一的,
map的使用使得一对数据能体现唯一的对应性。
在使用数据存储的时候,map<int,int>有时候会更加好用,可以通过map.size()直接得到数据的多少。
//map的基本使用
//基本声明
map<int,string> s;
//清空方式
s.clear();
//两种插入方式
s.insert(pair(int,string)(1,"father"));
s[1]="father";
//map的遍历方式
int i=map.size();
for(int i=1;i<=map.size();i++){
cout<<s[i]<<endl;
}
for(map<int,string>::iterator it=map.begin();it!=map.end();it++){
cout<<it.first<<it.second<<endl;
}
//map的查询方式
map<int,string>::iterator it;
it=s.find(1);
if(it!=s.end()) {
cout<<"find";
}
else{
cout<<"no find";
}