C++刷题精髓在STL编程,还有一些函数。下面我就总结一下本人在刷题过程中,每逢遇见总要百度的内容………………(大概率因为本人刷题太少了)

1. map

map<string, int> m;

map<int, int> m;

key-value一一对应,一个key只能有一个value,且m按key自动排序

begin()          返回指向map头部的迭代器
clear()         删除所有元素
count()          返回指定元素出现的次数
empty()          如果map为空则返回true
end()            返回指向map末尾的迭代器
erase()          删除一个元素
find()           查找一个元素
insert()         插入元素
size()           返回map中元素的个数

迭代:

map<int, int> ::iterator it;
for(it = m.begin();it != m.end();it++)
{
cout << it->first << it->second << endl;
}

2. vector

vector<int> vec;

尾部插入数字:vec.push_back(a);

使用下标访问元素,cout<<vec[0]<<endl;

插入元素:    vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

删除元素:    vec.erase(vec.begin()+2);删除第3个元素

vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

向量大小:vec.size();

清空:vec.clear();

迭代:

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;

3. set

set<int> s;

begin()--返回指向第一个元素的迭代器

clear()--清除所有元素

count()--返回某个值元素的个数

empty()--如果集合为空,返回true

end()--返回指向最后一个元素的迭代器

erase()--删除集合中的元素

find()--返回一个指向被查找到元素的迭代器

insert()--在集合中插入元素

size()--集合中元素的数目

swap()--交换两个集合变量

迭代:

set<int>::iterator it;
for(it=s.begin();it!=s.end();it++)
cout<<*it<<endl;

4. queue

queue<int> q;

入队,q.push(x); 将x 接到队列的末端。
出队,q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,q.front(),即最早被压入队列的元素。
访问队尾元素,q.back(),即最后被压入队列的元素。
判断队列空,q.empty(),当队列空时,返回true。
访问队列中的元素个数,q.size()

while(!q.empty())
{
q.front();
q.pop();
}

5. priority_queue

https://blog.csdn.net/weixin_36888577/article/details/79937886
priority_queue <int,vector<int>,greater<int> > q;      //升序队列
priority_queue <int,vector<int>,less<int> >q;           //降序队列
greater和less是std实现的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)

和队列基本操作相同:

  • top 访问队头元素
  • empty 队列是否为空
  • size 返回队列内元素个数
  • push 插入元素到队尾 (并排序)
  • emplace 原地构造一个元素并插入队列
  • pop 弹出队头元素
  • swap 交换内容

6. stack

stack<int> s1;
stack<string> s2;
入栈,s.push(x);
出栈,s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。
访问栈顶,s.top()
判断栈空,s.empty(),当栈空时,返回true。
访问栈中的元素个数,s.size()。

while(!s.empty())
{
s.top();
s.pop();
}

最新文章

  1. Mysql Error: Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to
  2. solr索引服务器的配置和solrj集成开发总结
  3. js实现页面a向页面b传参的方法
  4. DPDK多核多线程机制简析
  5. HDU 5328 Problem Killer(水题)
  6. Python内置数据类型之List篇
  7. python dict{}和set([])
  8. QString内部仍采用UTF-16存储数据且不会改变(一共10种不同情况下的编码)
  9. Android-Wheel-Menu
  10. 为joomla加入�下拉菜单的方法
  11. sql server数据库查询同义词
  12. 在ASP.NET Core中使用AOP来简化缓存操作
  13. 吴恩达机器学习笔记52-异常检测的问题动机与高斯分布(Problem Motivation of Anomaly Detection&amp; Gaussian Distribution)
  14. git &amp;&amp; gitlab 使用
  15. js动画 Css提供的运动 js提供的运动
  16. Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
  17. &quot;//./root/CIMV2&quot; because of error 0x80041003. Events cannot be delivered through this filter until the problem is corrected.
  18. JavaScript概念之screen/client/offset/scroll/inner/avail的width/left 分类: JavaScript HTML+CSS 2015-05-27 16:42 635人阅读 评论(0) 收藏
  19. angular指令中使用ngModelController
  20. python入门-IF语句

热门文章

  1. 利用Python sklearn的SVM对AT&amp;T人脸数据进行人脸识别
  2. SQL Server 事务复制分发到订阅同步慢
  3. linq中不能准确按拼音排序
  4. WPF 在一个dll创建一个Window(包含xaml),在另一个dll中再次继承 会出错
  5. 命令行程序如何获取HINSTANCE?
  6. 百度网盘web端项目总结
  7. 插件化一(android)
  8. Excel导入导出各种方式分析
  9. 关于Qt 5-MSVC 2015 64位在 win7 64位系统debug程序崩溃的问题
  10. ChartDirector应用笔记(可同时为Web和Qt MFC提供图表)