标签:
顺序容器
vector
类似数组,连续存储。适合随机访问,尾部插入。
list
双向链表,内存可以不连续。适合任意位置的删除和插入。
deque
支持在两端的操作push_back,push_front,pop_back,pop_front等
常用操作
1.添加元素
c.push_back(t) 向后添加元素
c.push_front(t) 向前添加元素 只适用list和deque
c.insert(p,t) 迭代器p前添加元素
2.访问元素
c.back() 最后一个元素
c.front() 第一个元素
*p 迭代器p指向的元素
c[i] 第i+1个元素 只适用与vector和deque
3.删除元素
c.erase(p) 删除p指向元素
c.clear() 删除所有元素
c.pop_back() 删除最后一个元素
c.pop_front() 删除第一个元素 只适合list和deque
4.交换元素
c1.swap(c2)
5.元素个数
m.empty() 检验是否空
m.size() 元素个数
常用函数
计数
count_if(c.begin(),c.end(),fun)
查找
find(c.begin(),c.end(),x)
排序
sort(c.begin(),c.end()) 适用vector,deque
stable_sort(c.begin(),c.end()) 稳定排序,适用vector,deque
s.sort() 适用list
反转
reverse(c.begin(),c.end()) 适用vector,deque
s.reverse() 适用list
去重复
vector,deque
sort(c.begin(),c.end())
c.erase(unique(c.begin(),c.end()),c.end())
list
s.sort()
s.unique()
string
顺序容器中支持的操作
s.empty();s.size();s.begin(); s.end();s.insert(p,t);s.erase(p);s[];
只适用与string的操作
s.substr(pos,n) 返回字符串包含下标pos开始的n个字符
s.append(args) 字符串后添加args表示字符串
s.repalce(pos,len,args) 替换字符串s中pos开始的len个字符
查找操作
s.find(args)
s.find_first_of(args)
s.find_last_of(args)
s.find_first_not_of(args)
args: (c,pos),(cp,pos)
容器适配器
s.empty()
s.size()
s.pop() 删除栈顶/队首元素
s.top() 返回栈顶元素 适用stack
s.push(item) 栈顶压入元素
q.front() 返回队首元素 适用queue
q.back() 返回队尾元素 适用queue
关联容器
map
对象元素是键-值对,键是唯一的,且元素按键排序存放。
set
存放一组键的集合,键不重复
常用操作
0.定义元素
map<string,int> m;
set<string> s;
1.添加元素
m["a"] = 1
s.insert("a") 适用set
m.insert(make_pair("a",1)) 适用map
m.insert(map<string,int>::value_type("a",1)) 适用map
2.访问元素
m["a"] 适用map
iter->second 适用map
*iter 适用set
3.删除元素
m.erase(p) p为键或迭代器
4.查找元素
m.find(k) 返回指向键k的索引
m.count(k) 返回0或1
5.元素个数
m.empty() 检验是否空
m.size() 元素个数
标签:
原文地址:http://www.cnblogs.com/fypp/p/4913433.html