STL之map,vector,set
Vector
基本写法
vector<int>a //定义一个int类型的vector a
vector<int>a(100,0) //声明一个已经存放了100个0的整数vector
常用操作
a.size() //返回元素个数
a.pop_back() //删除末尾的元素
a.push_back() //在末尾添加元素
a.back() //返回末尾的元素
a.clear() //清空,大小变为0
begin() //得到数组头的指针
end() //得到数组的最后一个单元+1的指针
empty() //是否为空
Map
声明方式
map<int,string>A或者map<string,int>A(两者不一样)
//用pair插入
A.insert(pari<int,string>(1,"student_one"));
//用insert插入value_type数据
A.insert(map<int,string>::value_type(1,"student_one"));
//用数组插入
map<int,string>A;
A[1]="student_one";
A[2]="student_two";
基本操作
begin() //返回指向map头部的迭代器
clear() //删除所有元素
count() //返回指定元素出现的次数
empty() //如果map为空则返回true
end() //返回指向map末尾的迭代器
erase() //删除一个元素
find() //查找一个元素
insert() //插入元素
key_comp() //返回比较元素key的函数
lower_bound() //返回键值>=给定元素的第一个位置
max_size() //返回可以容纳的最大元素个数
rbegin() //返回一个指向map尾部的逆向迭代器
rend() //返回一个指向map头部的逆向迭代器
size() //返回map中元素的个数
swap() //交换两个map
upper_bound() //返回键值>给定元素的第一个位置
value_comp() //返回比较元素value的函数
判断是否出现数据方法
mapPair=A.equal_range(2);
if(mapPair.first==mapPair.second)
cout<<"no find"<<endl;
//equal_range返回一个pair,pair的第一个变量为Lower_bound返回的迭代器,第二个为Upper_bound返回的迭代器,如果两个一样说明数据并没有找到
数据删除
iter=A.find(1);
A.erase(iter);
int n=A.erase(1)//删除成功返回1,否则为0
//利用迭代器全部删除
A.erase(A.begin(),A.end());
Set
Set与vector操作几乎一样,主要需要知道set不会出现重复的元素就好

浙公网安备 33010602011771号