【笔记】 STL容器

vector

	vector<int> v;
v.push_back(x);
v.emplace(x);
v.size();
v.erase(v.begin(),v.begin()+pos);
v.insert(v.begin()+pos,x);
lower_bound(v.begin(),v.end())-v.begin();
v.clear();

bitset

bitset<8> s ("00011011");
cout << s.count() << endl; //5   (求bitset中1的个数
cout << s.size() << endl;  //8   (求bitset的大小
cout << s.test(0) << endl; //true  (查下标处的元素是0还是1,并返回false或true,此处s[0]为1(最右),返回true
cout << s.any() << endl;  //true  (是否有1
cout << s.none() << endl;  //false  (是否无1
cout << s.all() << endl;  //false  (是否全部为1
mp.find(key)!=mp.end();//map的find查找的是键值
s.find(val)!=s.end();//set的find就是查元素在不在集合里

stack

	stack<int> stk;
stk.push(x);
stk.pop();
stk.top();
stk.size();
stk.empty();

queue

	queue<int> q;
q.push(x);
q.pop()
q.front();
q.back();
q.size();

deque

	deque<int> dq;
dq.push_back(x);
dq.push_front(x);
dq.front();
dq.back();
dq.pop_front();
dq.pop_back();
dq.size();

priority_queue

	//大根堆
priority_queue<int,vector<int>,less<int> >pq;//简写:priority_queue<int> pq;
/*小根堆
priority_queue<int,vector<int>,greater<int>> pq//无简写
*/
pq.push(x);
pq.emplace(x);
pq.size();
pq.empty();
pq.top();
pq.pop();

heap(?)

makeheap(a+1,a+n+1);
pushheap(a+1,a+n+1);
popheap(a+1,a+n+1);

(multi/unordered_)map

	map<int,int> mp;
mp[x]=y;
mp.lower_bound(x);
mp.emplace(x,y);
mp.insert(make_pair(x,y));
for(auto v:mp) v.first++;
mp.size();
mp.empty();
mp.clear();

(multi/unordered_)set

	set<int> s;
s.emplace(x);
s.insert(x);
s.erase(x);
s.lower_bound(x);
s.size();
s.empty();
s.clear();

list(?)

【笔记】 STL容器的更多相关文章

  1. C++面试笔记--STL模板与容器

    1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vec ...

  2. STL学习笔记(一) 容器

    0.前言随机访问迭代器: vector.string.dequeSTL的一个革命性的方面就是它的计算复杂性保证 条款01:慎重选择容器类型 c++提供的容器:标准STL序列容器:vector.stri ...

  3. STL容器

    啦啦啦,今天听啦高年级学长讲的STL容器啦,发现有好多东西还是有必要记载的,毕竟学长是身经百战的,他在参加各种比赛的时候积累的经验可不是一天两天就能学来的,那个可是炒鸡有价值的啊,啊啊啊啊啊 #inc ...

  4. c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例

    c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...

  5. STL容器删除元素的陷阱

    今天看Scott Meyers大师的stl的用法,看到了我前段时间犯的一个错误,发现我写的代码和他提到错误代码几乎一模一样,有关stl容器删除元素的问题,错误的代码如下:std::vector< ...

  6. 【转】c++中Vector等STL容器的自定义排序

    如果要自己定义STL容器的元素类最好满足STL容器对元素的要求    必须要求:     1.Copy构造函数     2.赋值=操作符     3.能够销毁对象的析构函数    另外:     1. ...

  7. GDB打印STL容器内容

    GDB调试不能打印stl容器内容,下载此文件,将之保存为~/.gdbinit就可以使用打印命令了. 打印list用plist命令,打印vector用pvector,依此类推. (gdb) pvecto ...

  8. STL容器迭代器失效分析

    连续内存序列容器(vector, string, deque) 对于连续内存序列STL容器,例如vector,string,deque,删除当前iterator会使得后面所有的iterator都失效, ...

  9. STL容器的适用情况

     转自http://hsw625728.blog.163.com/blog/static/3957072820091116114655254/ ly; mso-default-props:yes; m ...

  10. STL容器的遍历删除

    STL容器的遍历删除 今天在对截包程序的HashTable中加入计时机制时,碰到这个问题.对hash_map中的每个项加入时间后,用查询函数遍历hash_map,以删除掉那些在表存留时间比某个阈值长的 ...

随机推荐

  1. MySQL手动执行rollback,内部实现分析

    -- 测试手动回滚操作 -- 1手动开启事务 START TRANSACTION -- 2执行更新操作语句 UPDATE FraBakNtuAnalysize SET IsDeleted = 0 WH ...

  2. Linux下C语言操作网卡的几个代码实例?特别实用

    前面写了一篇关于网络相关的文章:如何获取当前可用网口. <简简单单教你如何用C语言列举当前所有网口!> 那么如何使用C语言直接操作网口? 比如读写IP地址.读写MAC地址等. 一.原理 主 ...

  3. C语言之父和Linux之父谁更伟大?

    前言 在计算机软件领域,做出过重大贡献的神人很多,比如:<计算机程序设计艺术>(The Art of Computer Programming)一书的作者- Donald Knuth:Pa ...

  4. How-many

    #include <bits/stdc++.h> #include <termio.h> #include <unistd.h> typedef long long ...

  5. Linux 磁盘命名规则

    IDE硬盘:早期的 IDE 接口硬盘被命名为hd[a-d],其中 hd 表示硬盘(Hard Disk),后面的字母 a 至 d 代表系统中第一至第四个 IDE 硬盘.不过,随着 SATA 接口硬盘的普 ...

  6. c++学习笔记(三):函数++

    函数PLUS 函数默认参数 在c++中,函数的形参列表中的形参是可以有默认值的.调用函数时,如果未传递参数的值(传入参数为空),则会使用默认值,如果指定了值,则会忽略默认值,使用传递的值. 语法:返回 ...

  7. IP服务正常,域名服务异常,报400 badrequest

    IP的情况下,访问接口都正常,使用域名访问,报错400 badrequest 经确认,ssl配置无问题,证书文件本身无问题 最后查出来原因,是域名格式的问题,原域名中包含_,需要修改为- 排查过程: ...

  8. 分布式缓存应用场景与redis持久化机制

    redis 参考目录: 生产级Redis 高并发分布式锁实战1:高并发分布式锁如何实现 https://www.cnblogs.com/yizhiamumu/p/16556153.html 生产级Re ...

  9. LCD屏幕显示PNG图像

    正点原子LCD屏幕显示PNG图像 本文概要 这段时间在学习正点原子的IMX6ULL开发板,在应用编程中有一个代码练习是需要在LCD屏幕上显示PNG图像,但由于我的屏幕参数和教程中的有些出入,于是经过自 ...

  10. vue3 如何获取 dom

    1. 通过 ref     1. 在 html 标签上指定 ref 属性     2. 在 setup 中定义并返回.注意:标签上的 ref 属性名需要跟 setup 中的对应 <h1 ref= ...