vector
变量声明:vector<类型> 变量名;例如vector<int> a;
vector<int> a(10,3);//容器里面有十个3
vector中所带的函数:
clear() 清除容器内的所有值;
push_back()在容器最后面插入一个元素;
例如:向容器中插入元素:
vector<int> a;
for(int i=0;i<10;i++) a.push_back(i);
pop_back()把容器最后一个元素删除;
size()返回元素个数;
例如:遍历容器元素:
vector<int> a;
for(int i=0;i<a.size();i++) cout<<a[i];
empty()判断容器是否为空
begin()返回容器第0个数,end()容器的最后一个数的后一个数
vector支持比较运算,但是比较大小的依据是字典序(在字典中,单词是按照首字母在字母表中的顺序进行排列的,比如 alpha 在 beta 之前。而第一个字母相同时,会去比较两个单词的第二个字母在字母表中的顺序)
insert(要插入的地址,要插入的元素)
v.insert(v.begin()+2,-1); //将-1插入v[2]的位置
erase()删除元素,可以删除指定的元素,也可以删除一个区间内的元素
v.erase(v.begin()+3);//删除v[3]的元素
v.erase(v.begin()+1,v.begin()+4);//删除v[1]到v[3]的元素
2.set
set(集合),是一个内部自动有序且不含重复元素的容器。
set可以在需要去重复元素的情况大放异彩,节省时间,减少思维量。
要使用set,需要添加头文件:#include<set>
set的定义:
set<类型> 变量名;//类型可以是int,double等等也可以是STL容器例如vector,set,queue
set<int> arr[10];//数组的定义,长度为十
在set容器内,只能用迭代器(iterator)访问
set<int>::iteratorit;set<char>::iteratorit;
这样,就得到了迭代器it,并且可以通过*it来访问set里的元素。
由此,可以用如下代码遍历容器内的所有元素:
for(set<int>::iterator it=st.begin();it!=st.end();it++)
cout<<*it<<endl;
insert()插入元素
find(value)返回的是set中value所对应的迭代器,也就是value的指针(地址)
set<int>::iterator it = st.find(2); //在set中查找2,返回其迭代器