C++ 读书笔记
来源:互联网 发布:手机我的世界端口 编辑:程序博客网 时间:2024/05/21 17:10
容器的类型约束
C++语言中,大多数类型可以作为容器的元素类型。容器元素类型必须满足以下两个条件:
1.元素类型必须支持赋值操作;
2.元素类型的对象必须可以复制。
IO库类型不支持复制或赋值,因此不能创建存放IO类型对象的容器。
容器的选择
vector和deque支持快速随机访问,但在容器的任意位置插入或者删除元素付出的代价高。list可以在任意位置快速插入和删除元素,但不支持随机访问。选用容器时应考虑元素是否需要随机访问,并且要在什么位置经常进行插入和删除操作。
因为为了使得算法能够独立于容器,真正成为“泛型”算法。
构造函数不能为const
构造函数可以认为有两个阶段:初始化阶段和普通的计算阶段,计算阶段是由构造函数体内的所有语句组成。类的数据成员总是在计算阶段开始之前进行初始化,如果没有使用初始化列表进行初始化操作,与在构造函数内进行赋值操作在效率上是有区别的。如果没有为类成员提供初始化式,则编译器会隐式地使用成员类型的默认构造函数。如果那个类没有默认构造函数,则编译器的尝试将会失败,此时必须显式提供初始化式。
因为内置类型(如int)的成员不进行隐式初始化,所以对这些成员是进行初始化还是赋值似乎是没有影响的。但是除了以下两种情况:1.const对象 2.引用对象
为啥呢?因为不能给一个const对象或引用对象在初始化后进行赋值,所以必须在初始化列表中进行初始化,否则在构造函数中进行赋值操作是错误的!!!谨记
算法不改变容器的大小
容量与长度
连续存储元素的容器需要支持“容量”的概念,因为连续存储元素的容器涉及内存分配与再分配的问题。而非连续存储元素的容器不存在这种问题。
迭代器的操作
只有vector和deque的迭代器操作包括+,-,+=,-=,-,>,>=,<,<=
list等其他容器并不支持这类操作
注意容器中erase的用法,下面是标准用法。
- C读书笔记
- C读书笔记
- 读书笔记-c
- C读书笔记
- Expert C Programming读书笔记
- 《C语言程序设计》读书笔记
- 谭浩强C语言 读书笔记
- 《Effective C++》读书笔记
- C-PRIMER PLUS读书笔记
- C-PRIMER PLUS读书笔记
- 《Effective C++》读书笔记
- C++Primer读书笔记(一)
- 【读书笔记】c专家编程
- C Primer Plus 读书笔记
- 《Effective c++》读书笔记
- 《C程序设计语言》读书笔记20091106
- test_irq.c 源代码 读书笔记
- C ++ 读书笔记 顺序容器
- WinForm"立体饼状图实现(附源码示例)" 之配餐系统的开发
- UML 参考
- 试验:空调等功率较大电器对信号的影响!
- Optimizing the Linux kernel for Database?
- 热销产品统计程序
- C++ 读书笔记
- 最长不降子序列/longest increasing sequence(LIS) O(n*lgn) POJ3670
- CMMI的关键过程域(KPA)
- 《梅花引》 蒋捷
- 太晚做题三大害
- AP与modem通信
- rootkit 直接访问硬件之
- 看来以后要增加积分才行啊
- UNIGUI中控件类名的变化