C++vector、map、queue等容器常用方法(未结束,我先用着)

Vector

向量vector第一个元素下标为0;其可直接用== != <= >= > < 进行比较操作。

#include<vector>;
#include<iostream>
#include<algorithm>

vector<datatype> ve;//初始化
vector<datatype> ve(N);//初始化N个
vector<datatype> ve(N,m);//初始化N个,均为m
vector<datatype> ve(Ve);//用Ve初始化
vector<datatype> ve(Ve.begin()+i,Ve.begin()+j);
	//用Ve的i到j-1个元素初始化(如0 3为0 1 2三个元素)
vector<datatype> ve(B,B+i);
	//用数组的前i个元素初始化

ve.assign(Ve.begin()+i,Ve.begin()+j);//将Ve的从第i个到第j个元素给ve
ve.assign(N,M);//ve含N个M元素

ve[i];//使用下标访问
for(vector<Datatype>::itertor it=ve.begin();it!=ve.end();it++){}//使用迭代器访问

ve.clear();//清空
ve.empty();//是否为空
ve.size();//元素个数
ve.capacity();//容量

ve.push_back(Data);//尾部插入
ve.insert(ve.begin()+i,Data);//在第i个元素后插入
ve.insert(ve.begin()+i,N,M);//在第i个元素后插入N个M
//也可以插入数组中的一段元素

ve.pop_back();//删除最后一个元素

ve.erase(ve.begin()+i);//删除第i+1个元素
ve.erase(ve.begin()+i,ve.begin()+j);//删除ve从i到j-1个元素

ve.resize(N);//将现有元素调为N个,多删少补,值随机
ve.resize(N,M);//同上,值为M;

ve.reserve(N);//将容量扩至N
ve.swap(Ve);//将ve与Ve元素交换

sort(ve.begin(),ve.end());//升序排列
reverse(ve.begin(),ve.end());//倒置
copy(ve.begin(),ve.end(),Ve.begin()+i);//将ve复制到Ve,从第i个开始覆盖
find(ve.begin(),ve.end(),data);//查找ve中有没有data

Map

C++ map是一种关联式容器,包含“关键字/值”对;一对一关系,key对value;

#include<iostream>
#include<algorithm>
#include<map>
map<Type1,Type2> Ma={
	           {Data1,Data2},{Data3,Data4}
			};//初始化,

//插入一组数据对
Ma.insert(pair<Type1,Type2>(data1,data2));
Ma.insert(map<Type1,Type2>::value_type(data1,data2));
Ma[value]=key;

//查找
iter =Ma.find(key1);//返回迭代器的位置,否则为Ma.end();

//删除和清空
iter=Ma.find(key);   Ma.erase(iter);    //迭代器删除
int n=Ma.erase(key);					//关键字删除 '1'  '0'
Ma.erase(Ma.begin(),Ma.end());   //等同于Ma.clear();

//常用操作函数
     begin()         //返回指向map头部的迭代器
     clear(//删除所有元素
     count()         //返回指定元素出现的次数
     empty()         //如果map为空则返回true
     end()           //返回指向map末尾的迭代器
     equal_range()   //返回特殊条目的迭代器对
     erase()         //删除一个元素
     find()          //查找一个元素
     get_allocator() //返回map的配置器
     insert()        //插入元素
     key_comp()      //返回比较元素key的函数
     lower_bound()   //返回键值>=给定元素的第一个位置
     max_size()      //返回可以容纳的最大元素个数
     rbegin()        //返回一个指向map尾部的逆向迭代器
     rend()          //返回一个指向map头部的逆向迭代器
     size()          //返回map中元素的个数
     swap()          //交换两个map
     upper_bound()   //返回键值>给定元素的第一个位置
     value_comp()    //返回比较元素value的函数

Queue(队列)

   queue<Type> M//定义一个queue的变量
   M.empty()    //是的话返回1,不是返回0;查看是否为空范例 
   M.push()		//从已有元素后面增加元素
   M.size()		//输出现有元素的个数
   M.front()	//显示第一个元素
   M.back()		//显示最后一个元素
   M.pop()		//清除第一个元素   

Deque

双向队列

//构造函数
deque<Elem> c //创建一个空的deque
deque<Elem> c1(c2) //复制一个deque。
deque<Elem> c(n) //创建一个deque,含有n个数据,数据均已缺省构造产生。
deque<Elem> c(n, elem) //创建一个含有n个elem拷贝的deque。
deque<Elem> c(beg,end) //创建一个以[beg;end)区间的deque。
deque<Elem>() //销毁所有数据,释放内存。

c.push_back(num)	//在末尾位置插入元素
c.pop_back()			//删除末尾位置的元素
c.push_front(num)	//在开头位置插入元素
c.pop_front()			//删除开头位置的元素 List
   
c.insert(pos,num)		//在pos位置插入元素num
c.insert(pos,n,num)		//在pos位置插入n个元素num
c.insert(pos,beg,end)	//在pos位置插入区间为[beg,end)的元素``

c.erase(pos)			//删除pos位置的元素c.erase(beg,end)删除区间为[beg,end)的元素
c.erase(beg,end)		//删除区间为[beg,end)之间的元素

c.begin()	//返回指向第一个元素的迭代器
c.end()		//返回指向最后一个元素下一个位置的迭代器
c.front()		//返回c容器的第一个元素
c.back()		//返回c容器的最后一个元素
c.rbegin()	//返回指向反向队列的第一个元素的迭代器(即原队列的最后一个元素)
c.rend()	//返回指向反向队列的最后一个元素的下一个位置(即原队列的第一个元素的前一个位置)``
c.clear()	//清除c容器中拥有的所有元素
c.resize(num)	//从新定义容器的大小
c.empty()					//判断c容器是否为空
c.size()					//返回c容器中实际拥有的元素个数
c.max_size()			//返回c容器可能存放元素的最大数量

c.assign(n,num)		//将n个num拷贝复制到容器c
c.assign(beg,end)	//将[beg,end)区间的数据拷贝复制到容器c

c.at(pos)		//返回索引为pos的位置的元素,会执行边界检查,如果越界抛出out_of_range异常
c.operator[]	//下标运算符重载

c1.swap(c2)交换容器c1,c2;
swap(c1,c2)同上。

List

Set

begin()        ,返回一个迭代器,返回的值为set容器的第一个元素
end()      ,返回一个迭代器,返回的值为set容器的最后一个元素
clear()          ,删除set容器中的所有的元素
empty()    ,判断set容器是否为空
max_size()   ,返回set容器可能包含的元素最大个数
size()      ,返回当前set容器中的元素个数
rend()     ,返回一个逆迭代器,它指向容器c的第一个元素前面的位置
count()       用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现01次,这样就变成了判断某一键值是否在set出现过了。

erase(iterator)         ,删除定位器iterator指向的值
erase(first,second) ,删除定位器first和second之间的值
erase(key_value)    ,删除键值key_value的值

find()      ,返回给定值的定位器,如果没找到则返回end()


insert(key_value);    // 将key_value插入到set中 ,返回值是pair<set<int>::iterator,bool>,bool标志着插入是否成功,而iterator代表插入的位置,若key_value已经在set中,则iterator表示的key_value在set中的位置。
inset(first,second);    //将定位器first到second之间的元素插入到set中,返回值是void.

lower_bound(key_value) 	//返回第一个大于等于key_value的定位器

upper_bound(key_value)	//返回最后一个大于key_value的定位器


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值