C++语言导学(5): 容器
引言
如果一个类的主要目的是保存对象,那么通常称之为容器(container)。
这里主要简单概述一下这些标准库容器:
- vector: 有序序列
- list: 双向链表
- map: 关联字典
- unordered_map: 无序哈希
欢迎订阅公众号, 点击 MinYiLife
如果一个类的主要目的是保存对象,那么通常称之为容器(container)。
这里主要简单概述一下这些标准库容器:
条款31: 将文件间的编译依存关系降到最低。 --- 《Effective C++》
条款22: 使用pImpl习惯用法时,将特殊成员函数的定义放到实现文件中。 --- 《Effective Modern C++》
pImpl
习惯用法,即pointer to implementation
,指的是以指针的方式访问类的实现部分。
C++提供开发者自定义类型的能力,而对于自定义类型的资源管理是一大难题。
对于一个自定义类型或者class来说,可以直接创建它的对象,也可以通过new为它创建指针。
对于对象和指针的资源管理,分别可以使用RAII原则和智能指针来处理。
程序组织的最佳方式是将程序看作依赖关系定义良好的一组模块,在逻辑上通过语言特性表达模块化,在物理上通过文件模块化实现高效的分别编译。
程序源码文件模块化最重要的一步是将每个组成部分的接口和实现分离开来,借助分别编译、后续链接的方式提高编译效率。
以往是通过头文件(*.hpp
)和实现文件(*.cpp
)来达到分离目的,在编译为动态链接库(*.so
)供其他人使用的时候特别方便,可以达到隐藏细节的目的。
陶潜,字渊明,江西九江人,自称五柳先生,世号靖节先生。
东晋末期到刘宋初期的人物,一般归为东晋诗人,是中国第一位田园诗人。
有才名,少好读书,不求甚解,每有会意,欣然忘食。
祖上当过东晋的大司马,相当于宰相级别,但到了他这一代,已经穷困潦倒了。
对于压缩文件如果压缩密码带有中文,可能会因为中文编码不一致而解压失败。
一般Windows下使用GBK编码,我们可以先获取到对应的原始编码形式:
唐代从第一位太子李建成开始,太子这个位置好像被下了诅咒一般,最先封的太子都很难顺利即位,总是过的战战兢兢。
第一代太子李建成被弟弟李世民所杀,第二代太子李承乾被父亲李世民所废,第三代太子李忠被父亲李治所废。
贞观十七年,15岁的李治被封为太子,同年有了自己的第一个儿子,即庶长子李忠。
唐朝(618年-907年)被称为「巨唐」,国祚289年。
提起唐朝,到「安史之乱」后,很多人就没有什么印象了。
「安史之乱」后,唐朝由盛转衰,但那时候唐朝才150年左右,还有漫长的大约150年。
整个唐朝大致可以分为初唐、盛唐、中唐、晚唐,不包括武则天的话,一共20位皇帝。