C++常用STL

C++基本操作

vector

image-20200324164637124image-20200324172640320

image-20200324172937806
如何查找 第二维?或者第一维

【链接】对vector中的pair进行多次find操作

class isE{
  isE(int val) :User(val){}
  bool operator()(const pair<int,int>& e)const{
    return e.second == User;
  }
  const int User;
}
vector<pair<int,int>> res;
auto it = find_if(res.begin(), res.end(),isE(val));返回一个迭代器

排序
bool cmp(PII x, PII y){
  return x.first > y.first;
}//从大到小排
sort(res.begin(), res.end(),cmp);

迭代器

image-20200324173546158

string

image-20200324173757083
  • 插入操作全是O(n)复杂度的
image-20200324173941567

algorithm

''#include

快速排序

image-20200324174749889 image-20200324175859554 image-20200324180008641

函数重载

image-20200324180116485* 符号重载

image-20200326093309640

nth_element 排序 找第n号元素(从第零号开始)

image-20200326093722346 image-20200326094008608

stack 栈

image-20200326094524051

queue队列

pair类型

https://blog.csdn.net/Enterprise_/article/details/73695255

image-20200326094604579

stack 和 queue 时间复杂度 加入 和删除操作 O(1)

优先队列 按照优先级插入 O(log n)

set集合

image-20200326094918537

集合是排好序的

map

image-20200326095148731 image-20200326095410805 image-20200326095645535 image-20200326095758337

![](/Users/yangfan/Library/Application Support/typora-user-images/image-20200326095744892.png)

Multiset multimap 改为unordered_set, unordered_map

image-20200326100126997

不需要理解每一个细节~~

www.cplusplus.com/reference/ 认真查看STL用法

自己瞎调

image-20200326100402000

10e6数据能用O(nlog n) 再大 只能用O(n)

https://vjudge.net

原文地址:https://www.cnblogs.com/love-study-chase/p/13335179.html