摘要: find 算法和 set 的 insert 成员函数是很多必须判断两个值是否相同的函数代表, find 对 “相同” 的定义是相等,基于 operator== , set::insert 对 “相同” 的定义是等价,通常基于 operator< 。 操作上来说,相等的概念基于 operator== 阅读全文
posted @ 2018-11-26 10:58 KidyCharon 阅读(451) 评论(0) 推荐(0)
摘要: 作为一个 STL 容器,vector<bool> 确实只有两个问题: 1. 它不是一个STL容器 2. 它并不容纳 bool 一个东西不能成为STL容器只因为会有人说它是(哈哈哈哈哈哈) vector不能编译下式: 因为vector<bool> 打包 bool 以节省空间,每个保存在“vector” 阅读全文
posted @ 2018-11-25 18:38 KidyCharon 阅读(340) 评论(0) 推荐(0)
摘要: 避免 vector 持有它不再需要的内存,你需要把它从曾经最大的容量减少到它现在需要的容量。这样的减少容量的方法常被称为“收缩到合适”。可以这样做: vector 的复制构造函数拷贝数据到临时vector,这个临时vector没有多余的容量,交换后,销毁 同样技巧用于 string: 收缩到合适意味 阅读全文
posted @ 2018-11-25 18:14 KidyCharon 阅读(149) 评论(0) 推荐(0)
摘要: 条款可以改为——宁可以编译器替换预处理器,因为 #define 可能不被视为语言的一部分 #define ASPECT_RATIO 1.653 解决之道是以一个常量替换宏(#define) const double AspectRatio = 1.653; 作为语言常量,AspecetRatio 肯 阅读全文
posted @ 2018-11-25 14:51 KidyCharon 阅读(183) 评论(0) 推荐(0)
摘要: C++ 是个多重泛型编程语言,一个同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)的语言。 将 C++ 视为一个由相关语言组成的联邦而非单一语言,在其某 阅读全文
posted @ 2018-11-25 10:53 KidyCharon 阅读(116) 评论(0) 推荐(0)
摘要: 已经存在的遗留的 C 风格 API 接受的是数组和 char* 指针,这样的 API 函数还将会存在很长时间,如果我们要有效使用 STL 的话,就必须和它们和平共处。 如果有一个 vector 对象 v,而你需要一个指向 v 中数据的指针,以使得它可以被当作一个数组,只要 &v[0] 就可以了。对于 阅读全文
posted @ 2018-11-24 08:39 KidyCharon 阅读(137) 评论(0) 推荐(0)
摘要: 每个 string 实现都容纳了下面的信息: 1. 字符串的大小,也就是它包含的字符的数目; 2. 容纳字符串字符的内存容量; 3. 这个字符串的值,也就是,构成这个字符串的字符。 另外,一个字符串可能容纳: 1. 它的配置器的拷贝; 2. 依赖引用计数的 string 实现也包含了这个值的引用计数 阅读全文
posted @ 2018-11-23 21:25 KidyCharon 阅读(137) 评论(0) 推荐(0)
摘要: 对于vector和string,当需要更多的空间,以realloc等价的思想来增长。类似于realloc的操作有四个部分: 1. 分配新的内存块,它有容器目前容量的几倍。大部分实现中,vector和string的容量以2为因数增长。 也就是说,当容器必须扩展时,它的容量每次翻倍。 2. 把所有元素从 阅读全文
posted @ 2018-11-23 20:51 KidyCharon 阅读(184) 评论(0) 推荐(0)
摘要: 罗曼罗兰著《贝多芬传》 译者序 傅雷 唯有真实的苦难,才能驱除浪漫底克的幻想的苦难;唯有看到克服苦难的壮烈的悲剧,才能够帮助我们承担残酷的命运;唯有抱着“我不入地狱谁入地狱”的精神才能挽救一个萎靡而自私的民族:这是我十五年前初读到这本书时所得的教训。 不经过战斗的舍弃是虚伪的,不经劫难磨练的超脱是轻 阅读全文
posted @ 2018-11-23 19:42 KidyCharon 阅读(544) 评论(0) 推荐(0)
摘要: 无论何时,准备动态分配一个数组,应该首先考虑使用一个 vector 或一个 string,vector 和 string 管理自己的内存,当元素添加到容器时,他们的内存会增长,而且当一个 vector 或 string 销毁时,它的析构函数会自动销毁容器中的元素,回收存放那些元素的内存。 vecto 阅读全文
posted @ 2018-11-23 11:00 KidyCharon 阅读(231) 评论(0) 推荐(0)