向量 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";
}