![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
石院情歌小王子
所有博文仅为日后复习方便查找,无其他用途,部分非原创,因标记转载较繁琐,所以标记为原创,无他意
展开
-
C++ STL list
list是一个双向链表容器,可以高效的进行插入和删除元素,list不可以随机的存取元素,所以不支持at()和[ ]操作,他的迭代器可以++,但是不支持+2等操作 #include <list> #include <iostream> using namespace std; void main() { list<int> li; for (int i ...原创 2019-06-05 20:38:17 · 117 阅读 · 0 评论 -
C++ STL 集合算法 set_union、set_intersection、set_intersection
#include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; void printV(vector<int> &vec) { for (vector<int>::iterator...原创 2019-08-01 20:44:52 · 320 阅读 · 0 评论 -
C++ STL几个常用的查找算法 adjacent_find、binary_search、count、count_if、find、find_if
#include <iostream> #include <vector> #include <algorithm> using namespace std; void adjacent_find_() { vector<int> vec; vec.push_back(1); vec.push_back(3); vec.push_ba...原创 2019-07-31 22:02:57 · 207 阅读 · 0 评论 -
C++ STL transform和for_each的基本使用
#include <algorithm> #include <vector> #include <iostream> #include <functional > #include <iterator> using namespace std; void printV(vector<int> &v) { for ...原创 2019-07-31 21:16:28 · 244 阅读 · 0 评论 -
STL 预定义函数对象和函数适配器
1.算术函数对象 预定义的函数对象支持加、减、乘、除、求余和取反。调用的操作符是与 type 相关联的实例 加法: plus<Types> 如:plus<string> stringAdd; sres = stringAdd(sva1,sva2); 减法: minus<Types> 乘法: multi...原创 2019-07-17 21:37:33 · 142 阅读 · 0 评论 -
stl算法设计理念_一元函数对象和一元谓词
函数对象,一元谓词,这些才听,觉得有点陌生, 函数对象: 重载函数调用操作符的类,其对象常称为函数对象(functionobject),即它们是行为类似函数的对象。一个类对象,表现出一个函数的特征,就是通过“对象名+(参数列表)”的方式使用一个类对象,如果没有上下文,完全可以把它看作一个函数对待。 这是通过重载类的operator()来实现的。 “在标准库中,函数对象被广泛地使用以...转载 2019-07-17 21:01:37 · 177 阅读 · 0 评论 -
STL sort、stable_sort()、partial_sort() 、partial_sort_copy() 、nth_element()、 is_sorted() 实例
本例子来源C语言中文网,写于此仅为便于复习 先从键盘读取 Name 对象,然后将它们按升序排列,再输出结果。Name 类定义在 Name.h 头文件中 Name.h : #include <string> class Name { public: Name(const std::string& name1,const std::string& name2) ...原创 2019-07-17 15:24:43 · 173 阅读 · 0 评论 -
C++ STL accumulate、equal、fill、fill_n、back_inserter、copy、replace、replace_copy、replace_if、swap等算法应用实例
#include <iostream> #include <vector> #include<numeric> #include <string> #include <iterator> #include <algorithm> using namespace std; void main() { vector<...原创 2019-07-16 21:20:24 · 110 阅读 · 0 评论 -
STL 各个容器的使用时机
原创 2019-07-16 19:13:59 · 82 阅读 · 0 评论 -
C++ STL map
#include <string> #include <iostream> #include <map> using namespace std; void main() { map<int, string> map1; //map插入元素 //方法1 pair<map<int,string>::iterator,bo...原创 2019-07-10 20:32:06 · 96 阅读 · 0 评论 -
C++ STL set
set是关联式容器。在set中每个元素的值都唯一(multiset中一个值可以出现多次),而且系统能根据元素的值自动进行排序,所以不能指定插入位置。应该注意的是set中数元素的值不能直接被改变(不能使用at()和[ ]操作符),如果希望修改一个元素的值,必须先删除原有的元素,再插入新的元素。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高...原创 2019-06-06 15:56:08 · 110 阅读 · 0 评论 -
C++ STL priority_queue优先级队列
priority_queue 优先队列,其底层是用堆来实现的。在优先队列中,队首元素一定是当前队列中优先级最高的那一个。 在优先队列中,没有 front() 函数与 back() 函数,而只能通过 top() 函数来访问队首元素(也可称为堆顶元素),也就是优 先级最高的元素。基本操作有: empty() 如果队列为空返回真 pop() 删除对顶元素 push() 加入一个元素 size() 返...原创 2019-06-05 21:00:08 · 108 阅读 · 0 评论 -
C++ STL string的一些基本用法
#include <string> #include <iostream> using namespace std; void main() { string s1 = "aaa"; string s2 = "bbb"; string s3(3,'c'); //字符串拼接 s1.append(s2); s3 += s2; cout << "s...原创 2019-06-04 20:52:33 · 242 阅读 · 0 评论 -
C++ vector的使用
vector是将元素置于一个动态数组中加以管理,他可以随机存取元素([]或at()等方法),vector在尾部添加或移除元素的速度非常快,但是在中间或头部插入或移除元素比较费时,vector采用模板类实现,容器存放的值是按值赋值的方式进行,所以在存入自定义对象时,所定义的对象必须提供拷贝构造函数,vector的元素可以重复,他是一种顺序容器 #include <vector> #i...原创 2019-06-05 16:55:12 · 1213 阅读 · 0 评论 -
STL标准库-容器-deque
deque是一个双端队列,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素 #include <deque> #include <iostream> using namespace std; void main() { //deque是一个双端队列 deque<int...原创 2019-06-05 17:33:05 · 132 阅读 · 0 评论 -
C++ STL stack的用法
Stack(栈)是一种先进后出的数据结构,也就是LIFO(last in first out) ,最后加入栈的元素将最先被取出来,在栈的同一端进行数据的插入与取出,这一段叫做“栈顶”,stack采用模板类实现,他是堆栈容器,是在简单的装饰deque容器后得来的另一种容器 #include <stack> #include <iostream> using namespa...原创 2019-06-05 19:17:47 · 83 阅读 · 0 评论 -
C++ STL queue
只能访问queue<T>容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。FIFO(先进先出) 1.初始化 需要头文件<queue> queue<int>que; 2.成员函数 back()返回最后一个元素 empty()如果队列空则返回真 front()返回第一个元素 pop()删除第一个元素 push(...原创 2019-06-05 19:55:14 · 140 阅读 · 0 评论 -
STL 综合案例 演讲比赛
比赛共24人,抽签决定分组,十个评委,去掉最高分以及最低分的平均分即为选手成绩,每次淘汰一半人,最后得出比赛前三名 #include <map> #include <vector> #include <algorithm> #include <string> #include <deque> #include<numeric&g...原创 2019-08-06 20:39:30 · 125 阅读 · 0 评论