STL容器
2016-06-07 20:43
225 查看
一.顺序容器,关联容器通用(vector,deque,set,map):
1.构造
C c1;构造空的c1
C c1(c2);把c2拷到c1
C c(ite1,ite2);把迭代器[ite1,ite2)拷到c中
C c{a,b,c.....}用列表的方式构造c
2.赋值
c1=c2;用c1的元素替换c2的元素(长度也可能变化)
c={a,b,c.....}把c1的元素替换为{a,b,c......}
3.容器大小
c.size()C元素的数目
c.empty()C为空时返回true
4.获取首尾迭代器
c.begin()返回首个元素
c.end()返回最后一个元素的后一个位置的迭代器
二.顺序容器
1.String,Vector,deque
插入
c.push_back(t)在队尾添加一个元素t,添加队尾元素增加元素个数,可能让Vector重新分配就会使前面的迭代器失效,要注意。
c.insert(p,t)在迭代器p前面插入t,并返回t的迭代器
c.insert(p,n,t)在迭代器p前面插入n个t,返回新添的第一个元素的迭代器
c.insert(p,ite1,ite2)在迭代器p之前插入[ite1,ite2)的元素,并返回插入的第一个元素的迭代器
删除
c.pop_back()删除队尾元素
c.erase(p)删除迭代器p指向的元素,并返回指向下一个元素的迭代器
c.erase(ite1,ite2)删除[ite1,ite2)迭代器范围的元素,返回最后一个被删元素的迭代器
c.clear()把每个元素初始化
返回首尾元素
c.front()返回首个元素
c.back()返回最后一个元素
String的额外操作
str.find("test",i);从下标i开始,查找"test",如果找到,返回找到的第一个"test"的下标(注意不是迭代器)
transform(str.begin(),str.begin(),str.end(),::toupper);
transform(str.begin(),str.begin().str.end(),::tolower);
把str字符串转化成大/小写
deque的额外操作
deq.push_front()在头部加入一个元素
deq.pop_front()将第一个元素去除
2.set和map
注:set.begin()和set.end()返回的迭代器不能执行加减运算,只能++,和--;
set无下标操作,map有关键词下标操作
添加元素
c.insert(t)在关联容器中插入函数一个pair,first指向t,second是bool,表示插入是否成功
c.insert(ite1,ite2)在关联容器中插入[ite1,ite2)的值
删除元素
c.erase(k)删除关键字是k的所有元素
c.erase(p)删除迭代器p指定的元素
1.构造
C c1;构造空的c1
C c1(c2);把c2拷到c1
C c(ite1,ite2);把迭代器[ite1,ite2)拷到c中
C c{a,b,c.....}用列表的方式构造c
2.赋值
c1=c2;用c1的元素替换c2的元素(长度也可能变化)
c={a,b,c.....}把c1的元素替换为{a,b,c......}
3.容器大小
c.size()C元素的数目
c.empty()C为空时返回true
4.获取首尾迭代器
c.begin()返回首个元素
c.end()返回最后一个元素的后一个位置的迭代器
二.顺序容器
1.String,Vector,deque
插入
c.push_back(t)在队尾添加一个元素t,添加队尾元素增加元素个数,可能让Vector重新分配就会使前面的迭代器失效,要注意。
c.insert(p,t)在迭代器p前面插入t,并返回t的迭代器
c.insert(p,n,t)在迭代器p前面插入n个t,返回新添的第一个元素的迭代器
c.insert(p,ite1,ite2)在迭代器p之前插入[ite1,ite2)的元素,并返回插入的第一个元素的迭代器
删除
c.pop_back()删除队尾元素
c.erase(p)删除迭代器p指向的元素,并返回指向下一个元素的迭代器
c.erase(ite1,ite2)删除[ite1,ite2)迭代器范围的元素,返回最后一个被删元素的迭代器
c.clear()把每个元素初始化
返回首尾元素
c.front()返回首个元素
c.back()返回最后一个元素
String的额外操作
str.find("test",i);从下标i开始,查找"test",如果找到,返回找到的第一个"test"的下标(注意不是迭代器)
transform(str.begin(),str.begin(),str.end(),::toupper);
transform(str.begin(),str.begin().str.end(),::tolower);
把str字符串转化成大/小写
deque的额外操作
deq.push_front()在头部加入一个元素
deq.pop_front()将第一个元素去除
2.set和map
注:set.begin()和set.end()返回的迭代器不能执行加减运算,只能++,和--;
set无下标操作,map有关键词下标操作
添加元素
c.insert(t)在关联容器中插入函数一个pair,first指向t,second是bool,表示插入是否成功
c.insert(ite1,ite2)在关联容器中插入[ite1,ite2)的值
删除元素
c.erase(k)删除关键字是k的所有元素
c.erase(p)删除迭代器p指定的元素
相关文章推荐
- 语句创建数据库表及增删改查
- Android Class加载机制(未完)
- Spark定制班第21课:Spark Streaming中动态Batch Size深入及RateController解析
- 使用Windbg解析dump文件 .
- 开一篇文章 记录我的java学习路上看过的书和资料 以及杂七杂八的面试经历
- nc元数据导出脚本
- 递归-文件结构“图”(算法基础 第3周)
- 【THUSC2016】蒟蒻的酱油记
- 最近十次打字记录
- 跟着小白学~如何使用二维数组打印杨辉三角
- canvas text
- linux下vi操作Found a swap file by the name
- Lightoj 1003 - Drunk(拓扑排序)
- 静态储存
- C++智能指针(auro_ptr...)
- 优先队列用法
- 实战 virtualenv 搭建多版本 Python 环境
- laravel随记(3)
- C++智能指针(auro_ptr...)
- PB打印标签DLL,支持128码( 未测)