《STL详解》读书笔记
v.insert(v.begin(), num);//增加
v.erase(v.begin(), v.end()); //擦除
v.erase(v.begin());
reverse(v.begin(), v.end()); //反向排序(从大到小)
sort(v.begin(), v.end(), comp);
-----------------------------------------------------------
string
string::iterator it = s.begin();
s.insert(it, c);
s.replace(pos, pos, c);
s.find(c);
reverse(s.begin(), s.end());
sscanf("bad", "%s", str);
-----------------------------------------------------------
set 集合容器
红黑树:左根右(不允许重复的键值)
set<int> s;
s.insert(num);
set<int>::iterator it;
中序遍历
for(it = s.begin();it != s.end();++it)
cout << *it << " ";
反向遍历
set<int>::reverse_iterator rit;
for(rit = s.rbegin();rit != s.rend();++rit)
cout << *rit << " ";
找到就返回该键值的迭代器位置,否则返回end()
it = s.find(num);
自定义比较函数,要求按键值由大到小的顺序
1、元素不是结构体
struct myComp
{
bool operator()(const int &a, const int &b)
{
return a > b;
}
};
set<int, myComp>::iterator it;
for(it = s.begin();it != s.end();++it)
cout << *it << " ";
2、元素是结构体,把比较函数写在结构体内
struct Info
{
string name;
float score;
//重载' < '操作符,自定义排序规则
bool operator < (const Info &a) const
{
return a.score < score;
}
};
set<Info>::iterator it;
for(it = s.begin();it != s.end();++it)
cout << (*it).name << ":" << (*it).score << endl;
---------------------------------------------------------------
multiset 多重集合容器
删除值为c的所有重复元素,返回删除元素总数
ms.erase(c);
返回第一个元素重复元素的迭代器位置,没有就返回end()迭代器位置
ms.find(c);
---------------------------------------------------------------
map 映照容器
红黑树,键值不重复,比较函数只比较键值
键值重复输入会被覆盖
使用与set集合容器类似
map<int, char>::iterator it;
map<int, char> m;
cout << m.first << m.second << endl;
{
bool operator ()(const int &a, const int &b)
{
if(a != b)
return a > b;
else
return a > b;
}
};
map<int, char, myComp> m;
m[1] = 'a';
{
string name;
float score;
bool operator < (const Info & a) const
{
return a.score < score;
}
};
map<Info, int>::iterator it;
应用:
用 map 实现数字分离
for(int j = 0;j < 10;++j)
m['0' + j] = j;
数字映照字符
for(int j = 0;j < 10;++j)
m[j] = '0' + j;
--------------------------------------------------------------
multimap 多重映照容器
插入元素需要使用 insert()
pair()将两个数据组合成一个数据, map 中将 key 和 value 放在一起来保存
m.insert(pair<string, double>("Jack", 306));
删除键值为 "Jack" 的元素
m.erase("Jack");
查找元素
m.find("Jack");
------------------------------------------------------------------
deque 双端队列容器
deque 采用分块的线性存储结构存储数据,所有 deque 块用一个 map 块进行管理
以数组方式输出元素
d.pop_front();
d.pop_back();
------------------------------------------------------------------
list 双向链表容器
迭代器只能用“++”或“--”的操作移动
插入新元素时,链表自动扩张
l.push_back();
l.push_front();
删除所有等于 1 的元素
l.remove(1);
l.pop_front();
l.pop_back();
l.erase();
l.find(l.begin(), l.end(), 5);
排序
l.sort();
剔除连续重复元素
l.unique();
-----------------------------------------------------------------
bitset 位集合容器
bitset 对象的大小一旦定义,就不能修改了
bitset<10> b;
将所有元素设为1
b.set();
b.set(pos, 1);
将 pos 位设置为 0
b.reset(pos);
直接向输出流输出所有元素
-----------------------------------------------------------------
stack 堆栈容器
s.push();
s.top();
s.pop();
s.size();
s.empty();
-----------------------------------------------------------------
queue 队列容器
queue<int> q;
q.push();
q.size();
q.front();
q.back();
q.empty();
q.front();//队首
q.back();//队尾
-----------------------------------------------------------------
priority_queue 优先队列容器
队列中最大元素总是位于队首
可以重载 "<" 操作符重新定义比较规则
priority_queue<int> pq;
pq.push(1);
pq.size();
pq.empty();
pq.top();
pq.pop();
struct Info
{
string name;
float score;
bool operator < (const Info &a) const
{
return a.score < score;
}
};
struct myComp
{
bool operator ()(const int &a, const int &b)
{
return a > b;
}
};
priority_queue<int, vector<int>, myComp> pq;
《STL详解》读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- [GO]append的扩容
package main import "fmt" func main() { s := make([], ) oldcap := cap(s) ; i < ; i++{ s ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(7):装配SpringBean·依赖注入装配
一.依赖注入的三种方式 在实际环境中实现IoC容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来.另一类则是依赖注入.一般而言,依赖注入可分为3中方式: ...
- 正确理解WPF中的TemplatedParent (转贴)
http://blog.csdn.net/idebian/article/details/8761388 (注:Logical Tree中文称为逻辑树,Visual Tree中文称为可视化树或者视觉树 ...
- [转]xe6 android 使用距离传感器(Proximiry)
The first step it's a run sample from RAD Studio that named SensorInfo on your device. On the tab Bi ...
- 运维利器:钉钉机器人脚本告警(Linux Python 篇)
写在前面的话 在前面的博客中已经具体提到了如何获取对的机器人的 Token 等操作,不清楚的可以参考之前写的 [运维利器:钉钉机器人脚本告警(Linux Shell 篇)]这篇博客的前部分. 本文主要 ...
- (一)用C或C ++扩展(翻译)
用C或C ++扩展 如果你知道如何用C语言编程,那么为Python添加新的内置模块是很容易的.这种扩展模块可以做两件不能直接在Python中完成的事情:它们可以实现新的内置对象类型,以及调用C库函数和 ...
- Mysql初识数据库《一》下载安装Mysql
#1.下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2.解压 如果想要让MySQL安装在指定目录,那么 ...
- [SinGuLaRiTy] 2017 百度之星程序设计大赛 复赛
[SinGuLaRiTy-1038] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. Arithmetic of Bomb Problem D ...
- 使用itchat监控微信消息,从此不再为撤回烦恼
强大的Itchat itchat是一个开源的微信个人号接口,使用python封装接入微信网页版接口,通过调用itchat来登录微信网页版收发消息. 项目简介 - itchat 掌握itchat之后,只 ...
- 通过get_FOO_display 查找模型中的choice值
在django的models.py 中,我们定义了一些choices的元组,类似一些字典值,一般都是下拉框或者单多选框,例如 0对应男 1对应女等. class Area(models.Model): ...