c++ STL
JPC客栈
分享Java、Python、C/C++、JavaScript等编程语言的相关知识和应用
展开
-
C++如何加速输入输出效率
只解除的是C++运行库层面的对数据传输的绑定,stdin和stdout应该在更底层的操作系统层面有绑定,没有解除,也就是说,cin.tie(0)与cout.tie(0)的方式是继续松绑c++传输的效率。这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑到了一起,默认情况为sync_with_stdio(ftrue),即开启。...原创 2022-08-10 10:47:06 · 1147 阅读 · 0 评论 -
C++STL之priority_queue优先队列
优先队列是一种极其特殊的队列,他与标准的队列使用线性结构进行计算不同,优先队列的底层是以散列的状态(非线性)表现的,他与标准的队列有如下的区别,标准的队列遵从严格的先进先出,优先队列并不遵从标准的先进先出,而是对每一个数据赋予一个权值,根据当前队列权值的状态进行排序,使得权值最大(或最小)的永远排在队列的最前面。priority_queue < T , Container , Compare > priority_queue < T > //直接输入元素则使用默认容器和比较函数T就是Type为数据类型。..原创 2022-08-09 18:49:01 · 271 阅读 · 0 评论 -
C++基础-STL map(映射)multimap(多映射)
map、multimap1、特性map是{键(key),值}对组成的集合,集合中的元素按照键排列,map不允许键值对重复,但是multimap是允许键值对重复的集合。2、适用情况希望将键与值相关联3、头文件#include<map>4、复杂度插入、删除、查找都为O(logN);5、定义及常用函数map<int, char> mapA;map<string,float> mapB;//其中T1,T2还可以用各种指针类型或自定义类型//map中插入原创 2022-04-18 21:05:11 · 560 阅读 · 0 评论 -
c++基础-STL set(集合)multiset(多集)
set、multiset1、特性set是一个元素集合,集合中的元素按有序的方式存储。set中没有重复的元素,但是multiset中允许有重复的元素。2、适用情况需要使用元素集合,而且对元素的查找、插入、删除都较为频繁时就可以使用。3、头文件#include<set>4、复杂度插入、删除、查找都为O(logN)5、定义及常用函数set c:创建空集合,不包含任何元素set c(op):以op为排序准则,产生一个空的setset c1(c2):复制c2中的元素到c1中原创 2022-04-18 21:03:05 · 311 阅读 · 0 评论 -
C++基础-STL deque(双端队列)
deque双端队列原创 2022-04-16 11:51:43 · 376 阅读 · 2 评论 -
C++基础-STL list
list知识点原创 2022-04-14 21:16:37 · 86 阅读 · 0 评论 -
C++基础-STL vector向量
vector(向量)特性:在内存中占有一块连续的空间,存储一个元素序列,可看做一个可动态扩充的数组,而且提供越界检查,使用[ ]直接存储数据。适用情况:需要快速查找,不在意插入、删除速度的快慢,能使用数组的地方都可以使用向量。头文件:#include <vector>复杂度:插入:push_back(),O(1);insert(),O(N)删除:pop_back(),O(1);erase(),O(N)查找:O(1)...原创 2022-04-14 20:36:41 · 100 阅读 · 0 评论 -
c++map
#include <bits/stdc++.h>using namespace std;map<string, int >myMap;//使用map,按关键字升序排序,即按ASCII码值升序,键不可重复bool run() { int n, maxCnt = 0; if (!(cin >> n)) return false; if (n == 0) return false; myMap.clear(); for (int i = 0; i &.原创 2021-11-20 14:09:44 · 439 阅读 · 0 评论 -
priority_queue
#include<iostream>#include<map>#include<queue>using namespace std;int main(){ priority_queue<int> pq;//定义优先队列 for(int i=0;i<10;i++){ pq.push(i+1);//添加元素 } while(!pq.empty()){ cout<<pq.top()<<endl;//top返回堆.原创 2021-10-22 21:38:19 · 48 阅读 · 0 评论 -
Map(c++)
#include<iostream>#include<map>#include<string>using namespace std;int main(){ map<int,string>mapStudent; mapStudent[1]="student1"; mapStudent[2]="student2"; mapStudent[3]="student3"; for(int i=3;i>=1;i--){ cout<&.原创 2021-10-22 21:29:01 · 75 阅读 · 0 评论 -
set(c++)
#include<iostream>#include<set>using namespace std;int main(){ set<int> st; for(set<int>::size_type i=0;i<10;i++){ st.insert(i+1);//插入元素,不允许元素重复 } bool b1=st.count(10); bool b2=st.count(11); cout<<b1<<b2&l.原创 2021-10-22 21:01:52 · 65 阅读 · 0 评论 -
vector
#include<iostream>using namespace std;#include<vector>int main(){ vector<string> v; for(int i=0;i<5;i++){ v.push_back("hello world");//插入5个 } //使用迭代器遍历 for(vector<string>::iterator it=v.begin();it<v.end();++it){.原创 2021-10-22 20:39:14 · 62 阅读 · 0 评论