C++STL
介绍了一些常用的、简单的STL知识,做出了一些自我学习的总结
Alan_Lowe
世上没有白走的路,每一步都算数!——狂神
展开
-
Python【C++常用STL相关内容】
Python【C++常用STL相关内容】最近呢在备战蓝桥杯,但是刷题的过程中,发现之前一直用C++的STL,现在有些功能不太熟悉,并且Python的时间效率实在是太低了,所以整理一下C++中的STL在Python中对应的知识点。文章目录Python【C++常用STL相关内容】1.栈(LifoQueue)2.队列(Queue)3.字典(dict)4.集合(set)5.堆(heapq)6.优先队列(PriorityQueue)7.二分查找(bisect)1.栈(LifoQueue)import queu原创 2022-03-30 16:53:12 · 2591 阅读 · 0 评论 -
C++STL常用操作之总篇
C++STL常用操作之总篇常用内容:(原创)vector:https://blog.csdn.net/qq_45985728/article/details/112598270string:https://blog.csdn.net/qq_45985728/article/details/112601755stack:https://blog.csdn.net/qq_45985728/article/details/112616443queue:https://blog.csdn.net/qq_4原创 2021-03-27 11:48:59 · 147 阅读 · 0 评论 -
C++STL常用操作之prev、next篇
C++STL常用操作之prev、next篇简介:1.prev:反向2.next:位移我们先建立一个set容器,在容器中放入1-10这10个数字set<int> s;for(int i = 1;i <= 10;++i) s.insert(i);此时容器s中的元素为1,2,3,4,5,6,7,8,9,10prev:如果用到lower_bound函数cout<<*s.lower_bound(5)<<"\n";应该输出大于等于5的第一个原创 2021-03-27 11:38:24 · 4269 阅读 · 0 评论 -
C++STL常用操作之unordered_map与map篇
C++STL常用操作之unordered_map与map篇简介:map和unordered_map存储的内容是一样的,都是(key,value)。区别:1.map内置红黑树,unordered_map内置哈希表。2.map具有排序功能,unordered_map内的元素是无序的。3.map的查询,插入、删除操作时间复杂度都是O(logn),unordered_map的查找时间复杂度是O(1)。4.map因为内置红黑树,每个节点都要额外存储父节点等内容,所以内存占用较大,但是unordered_原创 2021-02-04 19:56:06 · 833 阅读 · 0 评论 -
C++STL常用操作之lower_bound、upper_bound篇
C++STL常用操作之lower_bound、upper_bound篇简介:#include<algorithm>lower_bound(start,last,key)返回大于或者等于目标参数的第一个元素的位置upper_bound(start,last,key)返回大于目标参数的第一个元素的位置他们都有三个参数,第一个参数是查找区间的开始位置,第二参数是查找区间的结束位置的后一个位置,第三个参数是我们需要查找的目标key值。查找区间是一个左闭右开的有序区间,从第一个和第二个参数我原创 2021-01-23 15:54:36 · 1100 阅读 · 1 评论 -
C++STL常用操作之sort篇
C++STL常用操作之sort篇简介:#include<algorithm>sort排序是和堆排序等一样的较快的排序方式,时间复杂度为O(n*logn)。类似于快速排序1.简单理解vector:#include<iostream>#include<vector>#include<algorithm>using namespace std;vector<int> v1;int a;int main() { cout &原创 2021-01-23 14:55:55 · 433 阅读 · 1 评论 -
C++STL常用操作之priority_queue篇
C++STL常用操作之priority_queue篇简介:#include<queue>队列:https://blog.csdn.net/qq_45985728/article/details/112624175优先队列:入队的元素会被赋予优先级,当访问元素时,具有最高级优先级的元素先被访问,也就是说优先队列具有最高级先出队的特点。其可以说是队列和排序的完美结合,不仅可以存储数据,还可以按照我们规定的规则进行排序。时间复杂度为O(logn)。1.构造#include<i原创 2021-01-23 14:05:19 · 366 阅读 · 3 评论 -
C++STL常用操作之multiset篇
C++STL常用操作之multiset篇简介:multiset和set大致上是一样的,都是集合。set详细介绍见:https://blog.csdn.net/qq_45985728/article/details/112791689multiset和set不同的点在于multiset允许存在重复的元素。 multiset<int> multi; multi.insert(2); multi.insert(3); multi.insert(2); multi.insert(1原创 2021-01-18 20:43:17 · 464 阅读 · 1 评论 -
C++STL常用操作之set篇
C++STL常用操作之set篇简介:#include<set>1.元素唯一2.排序set也是c++中经常用到的容器,set是集合。set是集合,那么当然它内部的元素就是唯一的(集合的不重复性)。并且set中的元素还是已经排好序的,set和map一样,都是以红黑树为基础的数据结构。1.构造set<int> s;s.insert(3);s.insert(2);s.insert(4);s.insert(1);s.insert(1);s.insert(1);f原创 2021-01-18 18:49:29 · 4974 阅读 · 1 评论 -
C++STL常用操作之multimap篇
C++STL常用操作之multimap篇简介:multimap和map其实很相似但是multimap是允许重复元素的。map详见:https://blog.csdn.net/qq_45985728/article/details/112687378multimap<int, string> multi;multi.insert(pair<int, string>(520, "L"));multi.insert(pair<int, string>(520,原创 2021-01-18 17:41:19 · 394 阅读 · 1 评论 -
C++STL常用操作之map篇
C++STL常用操作之map篇简介:#include<map>map是标准的关联式容器,它的元素是一个对(这里可以参考一下之前的pair篇)。我们将它的对表示为:(key,value),可以理解为key是关键字,value是它对应的值,在map中key值是唯一的。map的实现是采用红黑树变体的平衡二叉树来实现的,其中的元素是按一定的顺序排序的,插入过程也是按照排序规则进行的。1.构造map<int, string> mp1;map<int, char>原创 2021-01-15 20:34:58 · 247 阅读 · 1 评论 -
C++STL常用操作之pair篇
C++STL常用操作之pair篇简介:pair(英文意义是一对、一双、对子)。没错,C++中pair就是一对的意思。其功能就是将一对值组合成为一个值,这一对值可以具有不同的数据类型(T1,T2),两个值可以分别用pair的两个公有函数first和second访问。可以和struct做一些类比,但是它的使用会方便很多。#include<utility>template <class T1, class T2> struct pair;头文件在代码中已经存在std的时候,原创 2021-01-15 14:48:20 · 1326 阅读 · 1 评论 -
C++STL常用操作之queue篇
STL简单使用之queue篇简介:队列,其特点是first in first out(先进先出),从对头出队,从队尾入队。这里可以和stack做一些比较#include<queue>队列对于某些问题的处理也是很方便的,比如广度优先搜索,这个我们在文章末尾给出一道简单的题目,大家可以试试。1.构造queue<int> qq;qq.push(2); //整形数据2入队qq.push(3); //整形数据3入队此时队列qq如图所示:2.常用函数qq原创 2021-01-14 17:54:16 · 1219 阅读 · 4 评论 -
C++STL常用操作之stack篇
STL简单使用之stack篇简介:栈也是一种常用的数据结构,其特点是last in first out(后进先出)。栈对于某些问题的处理是非常方便的,比如后缀表达式求值、中缀表达式转化为后缀表达式。逆序输出未知长度的字符串、十进制转二进制。等等……#include<stack>1.构造stack<int> ss; //一般使用空腔构造ss.push(2); //将整形数据2压入到栈ss中ss.push(5); //将整形数据5压入到栈ss中此时栈ss原创 2021-01-14 16:19:31 · 397 阅读 · 2 评论 -
C++STL常用操作之string篇
STL简单使用之string篇简介:#include<string>一种数据类型,类似于字符串,但是可以进行一些比字符串更方便的操作,在编程的时候也是经常用到。1.构造或赋值string s1; //默认为空串""string s2(4, 'c'); //长度为4且每个位置的字符均为ccout << s1 << endl << s2 << endl;getline(cin, s1); //读取一整行cin >&原创 2021-01-14 10:44:38 · 267 阅读 · 2 评论 -
C++STL常用操作之vector篇
STL简单使用之vector篇简介:#include<vector>它是一种容器,可以理解为向量、数组——可以动态申请增加长度的数组。1.构造vector<int> v1; //默认数组长度为0vector<int> v2(4); //申请了长度为4的数组v2vector<int> v3(4, 5); //申请了长度为4的数组,并且每个位置都赋值为52.获取用at或者[]类似于数组vector<int> vv{ 1,原创 2021-01-14 00:47:21 · 242 阅读 · 2 评论