Zhang's Wikipedia

玩就玩大的

标准模板库(STL) map —— 初始化问题

map 容器没有:.reverse成员; map 是关联式容器,会根据元素的键值自动排序; map 容器不是连续的线性空间; 标准 STL 使用 RB-tree 为底层机制 ⇒ 自动排序(关于键值); 1. 关于 map 的初始化问题map<int, bool> m;

2016-09-18 17:12:58

阅读数:2036

评论数:0

标准模板库 STL 使用之 —— vector 使用 tricks

1. 从已有 vector(或数组)中复制vector<int> a{....}; int an = a.size(); int half = an/2; vector<int> a0(a.begin(), a.begin()+half); vector<int>...

2016-09-06 17:13:40

阅读数:422

评论数:0

标准模板库(STL)之算法篇 —— lower_bound/upper_bound

无论是 lower_bound 还是 upper_bound 都作用于有序区间。也即事先需要对无需序列进行排序。1. lower_bound其返回值是:在不破坏排序状态的原则下,可插入 value 的第一个位置。2. upper_bound其返回值是:在不破坏排序状态的原则下,可插入 value ...

2016-06-13 22:41:48

阅读数:498

评论数:0

标准模板库(STL)之 queue 列传

四个核心接口 (1)push(尾部入队) (2)pop(头部出队) (3)front(查看头部) (4)back(查看尾部) 其与 stack 相比,除了入队、出队的形式不同之外,queue 比stack 多了一个查看头部和尾部元素的方法,而 stack 仅可查看栈顶;;

2016-04-10 19:29:58

阅读数:353

评论数:0

标准模板库(STL)之 priority_queue 列传

priority_queue 优先级队列,归根结底还是 queue,还是队列,只允许在尾部进入,并从头部取出元素,除此之外别无其他存取元素的途径。 缺省情况下,priority_queue 利用一个 max_heap 完成,max_heap 是一个以 vector 实现的 complete bin...

2016-04-08 11:10:00

阅读数:415

评论数:0

标准模板库(STL)之无序容器列传

无序容器(unordered container)。 (1)相比于 (multi)set 和 (multi)map,无序容器不需要排序准则; (2)相比于序列式容器,不存在语义将元素放置在指定位置;

2016-04-08 09:57:26

阅读数:430

评论数:0

[面试] C++ STL(一)—— 向一个vector中添加N个元素,平均的添加的性能是?

考虑如下的代码输出:int N = 100; vector<int> v; set<int> s; for (int i = 0; i < N; ++i) { s.insert(v.capacity()); v.push_back(i); } for ...

2016-03-28 09:38:13

阅读数:2626

评论数:0

源码之前,了无秘密(一)——iterator adapter

阅读 iterator adapter 源码,我们将获悉以下结论背后的道理: (1)如何鬼斧神工,将赋值变为插入,将前进变为后退了,绑定到任意装置上 (2)为什么 vector 不支持 front_inserter 一、赋值变插入赋值变插入的操作主要包括: (1)专司尾端插入的 back_inse...

2016-03-20 00:54:15

阅读数:677

评论数:0

STL 算法接口及用法说明 (二)

copy

2016-03-20 00:17:23

阅读数:637

评论数:0

标准模板库(STL)之配接器(Adapter)

一般只有一个私有成员变量(某物)的类,且其全部的成员函数都是对该唯一的成员变量的存、取和修改(实现修改某物接口,形成另一种风貌,侯捷语),则该类即为对该私有成员变量的配接(adapter)。 Adapter 这一概念,也是一种设计模式(design pattern),《Design Pattern...

2016-03-20 00:11:52

阅读数:1097

评论数:0

标准模板库(STL)之 map 列传 (三)

判断 map 容器是否存在某 key 的方法m.find(key) != m.end();return m[key]对于一个 map 容器,先判断键值是否存在,就直接返回,恰因为不会保错,返回 Value 的默认值,而容易引发逻辑错误。需首先判断 key 是否存在,可用 find() 判断是否存在...

2016-03-17 18:58:43

阅读数:381

评论数:0

深入理解 STL

私有成员变量 vs 容器 数据是精髓和灵魂。 私有成员变量之于一个类,正如容器之于 STL; 私有成员变量之于一个类一般而言,类是对私有成员变量的封装与抽象,类内的私有成员函数为公用成员函数服务,公有成员函数围绕私有成员变量展开(如果不操作私有成员变量),是没必要把公有成员函数放在类内实现的。...

2016-03-16 16:10:53

阅读数:487

评论数:0

标准模板库(STL)之 map 列传 (二)

标准模板库(STL)之 map 列传 map 容器的遍历 修改 key or value 实用的成员函数 下标 vs atmap 容器的遍历 使用 range-based for 循环访问 map 元素(C++11之后方支持)std::map<std::string, float> ...

2016-02-29 21:21:52

阅读数:529

评论数:0

标准模板库(STL)之 list 列传

list 使用一个 double-linked list (双向链表)来管理元素。只有运用迭代器,才能够访问 list 中的各个元素。也即 list 不支持operator []运算符重载(不开放在这样的接口给用户的目的也恰在于这不是一个高效的访问 list 中元素的方式)。list vs vec...

2016-02-29 20:46:36

阅读数:398

评论数:0

STL 算法/容器——总论

不同算法所需的迭代器类型

2016-02-29 20:03:33

阅读数:426

评论数:0

标准模板库(STL)之 map 列传

1. 模板参数 2. 元素的插入与移除(inserting and removing) 3. 排序规则只返回true/false,map容器如何实现查重与去重 4. 迭代器类型

2016-02-29 17:23:51

阅读数:783

评论数:0

STL 中的容器们 (二)

STL 中的容器们 容器最后一个元素的迭代器我们知道容器: .begin():第一个元素coll[0]的迭代器 .end():最后一个元素之前的元素的迭代器 所以容器最后一个元素的迭代器为:coll.end()-1;序列式容器 vs 关联式容器 两大类型的容器的一大区别在于: 所谓序列式是允...

2016-02-28 21:53:34

阅读数:379

评论数:0

STL 中的容器们(四)

STL 中的容器们 find(查找)函数的返回值的判断对于 STL 容器的find成员函数(其实好像也只有set才支持find成员函数)或者字符串string丰富的查找接口(find、find_first_of、find_last_of。。。)以及<algorithm>提供的全局的fi...

2016-02-25 18:35:26

阅读数:393

评论数:0

标准模板库(STL)之 vector 列传 (二)

1. 两种搭配 2. 容器为空的判断 3. 所能容纳的数据类型 4. push_back一个新元素 5. .resize() 的两个重载 6. .clear()的含义

2016-02-24 10:31:57

阅读数:687

评论数:0

STL::算法::常见算法(二)

1. remove_copy/remove 及其泛化版 remove_copy_if/remove_if 这两组函数提供的实现删除序列中的相关元素的思路,对我们实现自己的算法是有帮助的。

2016-02-21 22:40:33

阅读数:483

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭