c++中stl容器的常用示例
1、 set(集合)——包含了经过排序了的数据,这些数据的值(value)必须是唯一的。
也就是说输入set容器后得到数据,会去重并排序。
s.insert()插入一个元素
s.begin() s.end()分别返回首尾指针
s.clear() 清空集合
遍历需要利用迭代器set<类型>::iterator 变量名 ;

2、stringstream(容器)—— 可以将放入其中的string串按空格分隔成单词(感觉就是一个过滤的)

3、vector(不定长数组)——不需要定义初始长度的数组
v.push_back()向尾部插入一个元素
v.size()返回数组大小
v.pop_back()删除最后一个元素
v.insert(v[0]+i,a)在第i+1个元素后插入元素a
常用的就这几个成员函数,看看粘的网上的介绍:
基本操作
(1)头文件#include<vector>.
(2)创建vector对象,vector<int> vec;
(3)尾部插入数字:vec.push_back(a);
(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。
(5)使用迭代器访问元素.
(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
(8)向量大小:vec.size();
(9)清空:vec.clear();

4、map(映射)——map就是从键(key)到值(value)的映射。例如可以这样用:
先定义map<string,int> m; 赋值m["green"]=8 。看起来就是数组的高级版,可以改变下标的表示。
当遇到让我们计算 一篇文章中某单词出现的次数时,(如果它只提问一次单词a出现的次数,那么我们直接遍历一次,但是如果它问了很多次时,总不能一遍遍遍历吧,会超时的)这时候就用到映射了。
直接看示例:

5、queue(队列)——“先进先出”的一种数据结构,感觉这些容器就是把数组改造,添加一些成员函数,使它用起来更方便些,理解的时候可以对照如果用数组实现这样的功能有多麻烦。
其本操作:
1、定义:queue<int> q;
2、 q.push(a) 将元素a加入队列
q.front()访问首元素
q.back() 访问尾元素
q.pop() 删除首元素
q.size()返回元素个数
q.empty()判断队列是否为空

6、stack(栈)——“先进后出”的一种数据结构,和队列类比看。
其本操作:
1、定义:stack<int> s;
2、 s.push(a) 将元素a压入栈
s.top()访问栈顶元素
s.pop() 删除栈顶元素
s.size()返回元素个数
s.empty()判断栈是否为空

待续……
c++中stl容器的常用示例的更多相关文章
- C++中vector容器的常用操作方法实例总结
C++中vector容器的常用操作方法实例总结 参考 1. C++中vector容器的常用操作方法实例总结: 完
- C++中STL容器的比较
基本参考 https://blog.csdn.net/qq_14898543/article/details/51381642 容器特性: vector:典型的序列容器,C++标准严格要求次容器的实现 ...
- STL容器的常用用法
STL: 1.vector: vector<int> v;vector<int> v(10);//定义大小为10的int型向量容器.vector<int> v(10 ...
- c++中STL容器中的排序
1.c++STL中只有list自带了排序函数: (1).若list中存放的是int类型或者string类型,直接利用sort即可: list <int> list1; ...
- C++中STL常用容器的优点和缺点
我们常用到的STL容器有vector.list.deque.map.multimap.set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我 ...
- C++中STL常用容器的区别(转)
我们常用到的STL容器有vector.list.deque.map.multimap.set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我 ...
- 刷题常用的STL容器总结
本文归纳总结刷题常用到STL容器以及一些标准算法,主要包括: string.vector.map.pair.unordered_map.set.queue.priority_queue.stack,以 ...
- 【转】c++中Vector等STL容器的自定义排序
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1.Copy构造函数 2.赋值=操作符 3.能够销毁对象的析构函数 另外: 1. ...
- 【pat】C++之刷题常用STL容器整理
1.vector 动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图). 头文件 #include<vec ...
随机推荐
- OceanBase server处理网络包的回调逻辑
OceanBase处理网络包的逻辑还是蛮绕的,这里以UPS为例,作为给自己的备忘. UPS代码的main.cpp中调用ObUpdateServerMain的start启动server.start函数会 ...
- swift 附属脚本
附属脚本是访问对象,集合或序列的快捷方式 struct STest{ let constValue:Int subscript(count:Int)->Int{ return count*con ...
- EPLAN P8导线颜色的设置
P8里的导线应称为"连接",连接的颜色代表了其电位的传递路径,如可以给三相电源设置成黑色,PE设为绿色,N设为蓝色等等. P8中电位在连接和元器件中传递的方法是由元器件的连接点属 ...
- Populating Next Right Pointers in Each Node II--leetcode难题讲解系列
Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...
- Unity Remote 4安卓机使用指南
必须U3D版本为4.5以上,可以在Public目录下载.想实时调试IOS版本必须是MAC系统! 优点:可以在不编译的情况下实时的去调试真实Android设备的各种情况,包括使用触摸功能(Remote接 ...
- HttpRequest重写,解决资源战胜/链接超时/分块下载事件通知 问题。
/************************************************************************************** 文 件 名: WebRe ...
- Unit Of Work--工作单元(二)
回顾 上一篇我们根据工作单元的原理基于ADO.NET进行了简单的实现,但是当项目需求发生变化的时候,比如需要引入ORM框架又要兼容当前ADO.NET实现的方式时,先前的实现就无法满足这个需求了. 话就 ...
- Python Shell 解释器下使用Django Model
sys.path.append('E:/Projects/DjangoProjects/myFirstSite') os.environ.setdefault('DJANGO_SETTINGS_MOD ...
- Python Django 开发 2 数据库
一半教程用的Django都是1.8以前的版本,导致跟我用的1.8.2的版本用法有些出入,所以只能自己去官网看文档,以下一下是看官方文档而理解的,英语渣渣,可能会有理解有误的地方 先记录下如何查看dja ...
- 配置EF链接 MySql 的方法
材料: 1.MySQL for Visual Studio 1.2.4.msi 下载:http://dev.mysql.com/downloads/windows/visualstudio/ 2.my ...