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不会出现重复的元素就好

posted @ 2020-09-12 19:50  一个经常掉线的人  阅读(148)  评论(0)    收藏  举报