STL API

string

insert(pos,str);//在pos前插入str
insert(int pos, int n, char c);//在pos前插入n个字符c
s.substr(i,j)//取s的从i开始长度为j的一段字符串
s.substr(i)//从i开始,直到结束,相当于s.substr(i,s,size()-i+1)
reverse(a.begin(),a.end())//反转
char s[10010],p;
int l=strchr(s,p)-s;//返回p在s中第一次出现的位置
find(const string& str, int pos = 0) //查找str第一次出现位置,从pos开始查找
find(const char* s, int pos = 0)  //查找s第一次出现位置,从pos开始查找
find(const char* s, int pos, int n) //从pos位置查找s的前n个字符第一次位置
find(const char c, int pos = 0)//查找字符c第一次出现位置
string 转char*
string str="rewrew";
const char* s=str.c_str();
char*转string
char* s="sfhfg";
string str(s);//相当于构造函数
erase(pos,n);//删除pos开始的n个字符

vector

push_back()//插入元素
v.insert(v.begin(),100);//在开始位置插入100
v.insert(v.begin(),10,200);//在开始位置插入10个200
size();//返回容器中元素的个数
empty();//判断容器是否为空
resize(int num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
resize(int num, elem);//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长>度的元素被删除。
capacity();//容器的容量
reserve(int len);//容器预留len个元素长度,预留位置不初始化,元素不可访问。
v.erase(it);//删除it位置的元素(it为迭代器
v.erase(it,it+3);//删除从it开始到it+3 不包含it+3 即[it,it+3)
v.front()//第一个元素
v.back()//最后元素
v.pop_back();//删除最后一个元素
clear()//清空

deque

push_back(elem);//在容器尾部添加一个数据
push_front(elem);//在容器头部插入一个数据
d.insert(d.begin(),10);//开始位置插入10
d.insert(d.begin(),10,100);//开始位置插入10个100
d.insert(d.begin(),v.begin(),v.end());//开始位置插入容器v中的元素
deque.size();//返回容器中元素的个数
deque.empty();//判断容器是否为空
deque.resize(num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
deque.resize(num, elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置,如果容器变短,则末尾超出容器长度的元素被删除。
pop_back();//删除容器最后一个数据
pop_front();//删除容器第一个数据
d.erase(d.begin(),d.begin()+3);//删除前3个元素
d.erase(d.begin());//删除第一个元素

stack

push()//放入元素
top()//栈顶元素
pop()//抛除栈顶元素
empty()//空

queue

push();//往队尾添加元素
pop();//从队头移除第一个元素
back();//返回最后一个元素
front();//返回第一个元素
empty()//空
size()//大小

list

push_back(elem);//在容器尾部添加一个数据
push_front(elem);//在容器头部插入一个数据
pop_back();//删除容器最后一个数据
pop_front();//删除容器第一个数据
l.insert(l.begin(),10);//开始位置插入10
l.insert(l.begin(),10,100);//开始位置插入10个100
l.insert(l.begin(),v.begin(),v.end());//开始位置插入容器v中的元素
l.erase(l.begin(),l.end());//删除所有元素
l.erase(l.begin());//删除第一个元素
reverse(l.begin(),l.end());//反转
不支持迭代器加减运算

set 自动去重自动排序(从小到大

insert(elem);//在容器中插入元素。
clear();//清除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg, end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(elem);//删除容器中值为elem的元素。
不支持迭代器加减
find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();
count(key);//查找键key的元素个数
lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。
upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。
equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。

map 按键值自动排序

map.insert(...); //往容器插入元素,返回pair<iterator,bool>
map<int, string> m;// 第一种 通过pair的方式插入对象
m.insert(pair<int, string>(3, "张三"));// 第二种 通过pair的方式插入对象
m.inset(make_pair(3, "张三"));// 第三种 通过value_type的方式插入对象
m.insert(map<int, string>::value_type(3, "张三"));// 第四种 通过数组的方式插入值
m[3] = "小刘";
m.erase(m.begin());
迭代器不能加减
find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;/若不存在,返回map.end();
count(keyElem);//返回容器中key为keyElem的对组个数。对map来说,要么是0,要么是1。对multimap来说,值可能大于1。
lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。
upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。
equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。
pair<map<int,string>::iterator,map<int,string>::iterator >res;
res=m.equal_range(2);
cout<<res.first->first<<" "<<res.first->second<<endl;
cout<<res.second->first<<" "<<res.second->second<<endl;

priority_queue

priority_queue<Type, Container, Functional>
Type 是数据类型 Container 是容器类型 Functional 是比较方式
top();//访问队头元素
empty();//队列是否为空
size();//返回队列内元素个数
push();//插入元素到队尾 (并排序)
emplace();//原地构造一个元素并插入队列
pop();//弹出队头元素
swap();//交换内容

顺序性容器vector、list、deque
关联容器set、multiset、map、multimap
容器适配器stack、queue、priority_queue

只整理了比较常用的,另外的API日后再更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值