STL基础教程
C++ STL基础教程,从C++ STL的简单使用到结构体的使用.
lady_killer9
CKA、CKS证书持有者,安全工程师
展开
-
C++STL之unordered_set简单使用
目录简介常用函数代码运行截图参考简介unordered_set 容器,可直译为“无序 set 容器”,即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。总的来说,unordered_set 容器具有以下几个特性:不再以键值对的形式存储数据,而是直接存储数据的值; 容器内部存储的各个元素的值都互不相等,且不能被修改。 不会对内部存储的数据进行排序(这和该容器底层采用原创 2020-09-05 21:34:14 · 4727 阅读 · 0 评论 -
C++STL之unordered_map的简单使用
unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。以键值对(pair类型)的形式存储数据,存储的各个键值对的键互不相同且不允许被修改。unordered_map 容器底层采用的是哈希表存储结构,该结构本身不具有对数据的排序功能,所以此容器内部不会自行对存储的键值对进行排序。unordered_map容器通过其键值访问单个元素的速度要比map容器快。做图的题的时候可以用这个来保存邻接表。原创 2020-08-31 15:45:08 · 1503 阅读 · 0 评论 -
C++STL之priority_queue的简单使用
简介priority_queue(优先级队列)模拟的也是队列这种存储结构,它底层采用堆结构存储数据,即使用此容器存储元素只能“从一端进(称为队尾),从另一端出(称为队头)”,且每次只能访问 priority_queue 中位于队头的元素。但是,priority_queue 中元素的存和取,遵循的并不是 “First in,First out”(先入先出)原则,而是“First in,Optimal out”原则。指的就是先进队列的元素并不一定先出队列,而是优先级最大的元素最先出队列。注意,“Fir原创 2020-08-30 15:19:55 · 1179 阅读 · 0 评论 -
C++ STL容器用法示例大全
目录基础篇:C++ STL之vector的简单使用C++ STL之string的简单使用C++ STL之list的简单使用C++ STL之map的简单使用 动态规划-最长平衡子串(2018北邮机试真题)C++ STL之multimap的简单使用C++ STL之set的简单使用 最值问题-北邮oj88C++ STL之multis...原创 2018-07-23 22:06:36 · 26503 阅读 · 1 评论 -
最值问题-北邮OJ88
地址:http://10.105.242.80/problem/p/88/88. 最值问题时间限制 1000 ms 内存限制 65536 KB题目描述给出N个数,求出这N个数中最大值和次大值。注意这里的次大值必须严格小于最大值。输入保证N个数中至少存在两个不同的数。输入格式第一行为测试数据的组数T(T≤20)。请注意,任意两组测试数据之间是相互独立的。每组数据包括两行:...原创 2019-02-26 08:23:34 · 885 阅读 · 0 评论 -
C++ STL之vector的简单使用
Vector是c++提供的容器之一,可以很好的扩展。除此之外,提供了一些函数。本篇文章将常用的函数进行了使用,利用switch组成了一个菜单,具有尾部扩张 、插入、删除、排序、显示 、修改等功能。适合初学者。代码:/********************* vector Author:YuBo Date:2018/1/23**********************/...原创 2018-02-02 11:45:36 · 2901 阅读 · 1 评论 -
C++ STL之deque对结构体的增加,删除,排序的操作
****************deque的用法******************************** c.assign(beg,end) 将[beg; end)区间中的数据赋值给c。 c.assign(n,elem) 将n个elem的拷贝赋值给c。 c.at(idx) 传回索引idx所指的数据...原创 2018-09-27 10:24:23 · 3194 阅读 · 0 评论 -
C++ STL之multiset的简单使用
multiset是容器中的一种,与set相比,可以插入相同的元素。其他地方和set几乎一模一样,可以看看set,见下面链接。set容器的使用2019年02月28日 更新....注:multiset容器有重复值,有时需要仅删除重复值的一个,例如,1 2 2 3,想要删除一个2。不能简单的使用s.erase(2),而是用 s.erase(s.lower_bound(2)),...原创 2018-02-05 14:33:58 · 2568 阅读 · 1 评论 -
C++ STL之set的简单使用
Set是容器的一种,内部采用红黑树结构,insert函数直接将元素插入红黑树,用户不用去排序,解决了排序这个难题。另一特点是不可插入重复元素,在使用时应注意这一点。接下来将常用的功能集合在了一起,包括添加,删除,查找等功能。代码:/*SetAuthor:YuBo*/#include<iostream>#include<set>using nam...原创 2018-02-05 14:18:11 · 1311 阅读 · 1 评论 -
C++STL stack的简单使用
栈容器的内容比较少,只提供了入栈,出栈,栈的大小,栈顶元素等函数,没有提供迭代器等,无法访问。不用遍历内部元素时可以使用。代码:/*statckAuthor:YuBoDate:2018/2/5*/#include<iostream>#include<stack>using namespace std;stack<int> s;v...原创 2018-02-05 15:19:58 · 1289 阅读 · 0 评论 -
C++STL 之queue的简单使用
queue,队列。特点:先进先出。C++ STL提供了入队,出队,获取队顶,队尾等函数。代码:/*queueAuthor:YuBoDate:2018/2/5*/#include<iostream>#include<queue>using namespace std;queue<int> q;void menu(){ cou...原创 2018-02-05 17:06:05 · 6459 阅读 · 0 评论 -
C++ STL之deque(双端队列)的使用
双端队列(deque),顾名思义,两端都可以操作,插入和删除。而且,还可以在中间进行操作。内部采用线性表顺序结构,与vector不同的是,deque采用分块的线性存储结构存储数据,每块大小512字节。所有的deque块使用一个Map块进行管理,每个Map数据项纪录各个deque块的首地址。当考虑容器内部的内存分配策略和操作性能时,deque相对于vector更有优势,同时,也可以...原创 2018-02-07 20:06:27 · 2027 阅读 · 0 评论 -
蓝桥杯-基础练习之BASIC-13数列排序(vector实现)
/*问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9*/#include#include#includ原创 2018-02-06 08:54:48 · 643 阅读 · 0 评论 -
蓝桥杯 基础练习之BASIC-5查找整数(vetor实现)
/*问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。样例输入61 9 4 8 3 9原创 2018-02-06 08:55:10 · 515 阅读 · 0 评论 -
蓝桥杯 问题 1083: Hello, world!(C/C++ vector实现)
/*问题 1083: Hello, world!时间限制: 1Sec 内存限制: 64MB 提交: 944 解决: 476题目描述This is the first problem for test. Since all we know the ASCII code, your job is simple:Input numbers and output corresp原创 2018-02-07 19:23:39 · 1014 阅读 · 0 评论 -
蓝桥杯 问题 1093: 字符逆序(c++实现 string)
/*问题 1093: 字符逆序时间限制: 1Sec 内存限制: 64MB 提交: 1413 解决: 733题目描述将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。输入输入包括一行。 第一行输入的字符串。输出输出转换好的逆序字符串。样例输入I am a student样例输出tneduts a ma I*/ /* Author:YuBo...原创 2018-02-07 19:22:18 · 736 阅读 · 0 评论 -
蓝桥杯 问题 1094: 字符串的输入输出处理(c++实现)
/*问题 1094: 字符串的输入输出处理时间限制: 1Sec 内存限制: 64MB 提交: 1657 解决: 386题目描述字符串的输入输出处理。输入第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。输出先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回原创 2018-02-07 19:21:33 · 1751 阅读 · 0 评论 -
蓝桥杯 问题 1466字符串对比(c++实现)
/*问题 1466: [蓝桥杯][基础练习VIP]字符串对比时间限制: 1Sec 内存限制: 128MB 提交: 115 解决: 42给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:1:两个字符串长度不等。比如 Beijing 和 Hebei2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(原创 2018-02-07 19:20:58 · 636 阅读 · 0 评论 -
C++ STL之multimap的使用
相比map,multimap可以插入相同键值的元素,两者的输入方式也不同。multimap有插入,删除,查找等功能。接下来,用一个程序将几个函数串起来。文章下方附有map的链接。代码:/*Author:YuBoDate:2018/2/6multimap*/#include<iostream>#include<string>#include&...原创 2018-02-07 19:50:20 · 1416 阅读 · 0 评论 -
C++ STL之map的简单使用
map是容器之一,有映照的功能,也采用红黑树,自动按照键值排序。可以根据下标访问等,接下来用一个程序将这些函数串起来进行展示。文章下方有multimap的链接。代码:/*Author:YuBoDate:2018/2/6map*/#include<iostream>#include<string>#include<map>usin...原创 2018-02-07 19:48:33 · 1499 阅读 · 3 评论 -
C++ STL之list的简单使用
list是双向链表,有vector,deque的特征,而且效率高。它有插入(前插,后插,中间插),删除(前删,后删,清空等),排序等功能。而且,可以剔除连续相同元素,保留一个。接下来,用一个程序将它的功能串起来,文章末尾有vector等的链接。代码:/*listAuthor:YuBoDate:2018/2/5*///注意与vector deque的相同点与不同点...原创 2018-02-07 20:36:49 · 1514 阅读 · 0 评论 -
C++ STL汇总之区别与联系
C++的STL中提供了很多的容器,有vector,set,multiset,map,multimap等等。学习了一段时间,进行汇总,强化区别与联系。见下方表格: C++ vector的简单使用https://blog.csdn.net/lady_killer9/article/details/79237116 C++ STL之string的简单使用http://...原创 2018-02-08 11:44:17 · 945 阅读 · 0 评论 -
蓝桥杯-问题 1606: 集合运算(C++set解决)
/**********问题 1606: [蓝桥杯][算法训练VIP]集合运算时间限制: 1Sec 内存限制: 128MB 提交: 5 解决: 2题目描述给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。输入第一行为一个整数n,表示集合A中的元素个数。第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。第三行为一个整数m,表示集合B中的元素个数。第四行有m个互...原创 2018-02-11 19:26:15 · 942 阅读 · 0 评论 -
蓝桥杯-问题 1487: 不同单词个数统计(c++ set解决)
/*问题 1487: [蓝桥杯][算法提高VIP]不同单词个数统计时间限制: 1Sec 内存限制: 128MB 提交: 53 解决: 16题目描述编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, thr...原创 2018-02-11 19:43:10 · 1275 阅读 · 0 评论 -
STL-list错误:list iterator not incrementable
使用STL的list容器时报错,具体内容如下:错误图:分析:迭代没法再自增了。代码部分:在遍历时用了erase函数,会把迭代器弄乱。无法继续进行,因此,删除完后加上break,别让它继续查找即可。有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。...原创 2018-05-11 14:53:51 · 1035 阅读 · 0 评论 -
c++ STL之list对结构体的增加、删除、排序等操作
对STL中的list进一步学习,编程过程中对结构体的操作很多。全部代码如下:/* Project:list对结构体的使用 Date: 2018/07/14 Author: Frank Yu 常用函数:int size() 返回容器元素个数;bool empty() 判断容器是否为空,true为空; 增加函数:void push_back(元素) 尾元素...原创 2018-07-15 11:10:00 · 8525 阅读 · 1 评论