摘要: 要实现在一个 reverse_iterator ri 指出的位置上插入新元素,在 ri.base() 指向的位置插入就行了。对于 insert 操作而言,ri 和 ri.base() 是等价的,而且 ri.base() 真的是 ri 真的是 ri 对应的iterator 要实现在一个 reverse 阅读全文
posted @ 2018-11-28 19:09 KidyCharon 阅读(165) 评论(0) 推荐(0)
摘要: 并不存在从 const_iterator 到 iterator 之间的隐式转换 一种安全的、可移植的方法获取他所对应的 iterator: 要得到与 const_iterator 指向同一位置的 iterator,首先将 iterator 指向容器的起始位置,然后把它向前移到和 const_iter 阅读全文
posted @ 2018-11-28 18:46 KidyCharon 阅读(203) 评论(0) 推荐(0)
摘要: 每个标准容器类都提供四种迭代器类型,对于container<T>而言: 有些方法只接受 iterator 类型的参数 图片显示了从iterator到const_iterator、从iterator到reverse_iterator和从reverse_iterator到const_reverse_it 阅读全文
posted @ 2018-11-28 16:47 KidyCharon 阅读(582) 评论(0) 推荐(0)
摘要: 散列容器: unordered_set、unordered_multiset、unordered_map、unordered_multimap 阅读全文
posted @ 2018-11-28 15:38 KidyCharon 阅读(180) 评论(0) 推荐(0)
摘要: 假设有一个支持默认构造函数以及从一个 double 构造和赋值的 Widget 类: 现在让我们假设我们想建立一个从 int 到 Widget 的 map,初始化有特定值的映射: map::operator[] 被设计为简化 “添加或更新” 功能。即,给定 检查键 k 是否已经在 map 里,如果不 阅读全文
posted @ 2018-11-28 15:33 KidyCharon 阅读(340) 评论(0) 推荐(0)
摘要: 标准关联容器的典型实现是平衡二叉查找树, 一个平衡二叉查找树是一个对插入、删除和查找的混合操作优化的数据结构 1. 建立。通过插入很多元素建立一个新的数据结构 2. 查找。在数据结构中查找指定的信息片。 3. 重组。修改数据结构的内容,也许通过删除所有现有数据和在原地插入新数据。 有时,一个 vec 阅读全文
posted @ 2018-11-28 13:51 KidyCharon 阅读(213) 评论(0) 推荐(0)
摘要: 洗儿 苏轼 人皆养子望聪明,我被聪明误一生。 惟愿孩儿愚且鲁,无灾无难到公卿。 王熙凤“ 机关算尽太聪明,反误了卿卿性命 ” 曾国藩:天下之至拙,能胜天下之至巧 阅读全文
posted @ 2018-11-28 08:19 KidyCharon 阅读(194) 评论(0) 推荐(0)
摘要: 正如所有标准关联容器,set 和 multiset 保持它们的元素有序,容器的正确行为依赖于它们保持有序,如果改变一个元素的值,新值不在正确的位置,将破坏容器的有序性。 对于 map 和 multimap 容器,改变容器里一个键值的程序不能编译, map<K, V> 或 multimap<K, V> 阅读全文
posted @ 2018-11-27 19:47 KidyCharon 阅读(171) 评论(0) 推荐(0)
摘要: 除非比较函数总是为相等的值返回 false,否则将会打破所有的标准关联容器, 不管关联容器是否允许存在副本(set、map、multiset、multimap) 对于(set、map)使用 less_equal (<=): 结果为 false,当 insert(10A) 与 insert(10B) 阅读全文
posted @ 2018-11-26 16:09 KidyCharon 阅读(255) 评论(0) 推荐(0)
摘要: 对于 string* 指针的 set,打印 set <string*> ssp 内容: 前一种循环的方式 *i 是指针。即使用 **i 替代,set 建立时按指针排序 copy的方式,编译器检测到迭代器传递的 string* 与ostream_iterator 需要打印对象不匹配。 string* 阅读全文
posted @ 2018-11-26 14:25 KidyCharon 阅读(147) 评论(0) 推荐(0)