随笔分类 - C++
摘要:(1) list<string> a = {"mi", "li"}; auto it1 = a. begin(); auto it2 = a. rbegin(); auto it3 = a. cbegin(); auto it4 = a. crbegin(); (2)也可以显示指定类型list<st
阅读全文
摘要:(1)deque双端队列是一个更为复杂的数据结构,与string和vector类似,deque支持快速随机访问,并且也是在deque的中间位置添加或删除元素的代价很高。但是,在deque的两端添加或删除元素都是很快的,和list或forward_list的速度相当。(2)forward_list和a
阅读全文
摘要:(1)iostream定义了用于读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型。(2)继承机制使我们可以声明一个特定的类继承自另一个类,我们通常可以将一个派生类当做其基类对象来使用。(3)代码通常在使用一个流之前检查它是否处于良好状态,确
阅读全文
摘要:(1)如果不允许隐式转换,就是阻止隐式转换的话,就要在构造函数前面加上一个explicit。关键字explicit只对一个实参的构造函数有效,需要多个实参的构造函数不能用于执行隐式转换,所以无须将这些构造函数指定为explicit的。只能在类内声明构造函数的时候使用这个关键字,在类外面定义的时候不应
阅读全文
摘要:(1)一个const成员函数如果以引用的形式返回*this,那么它返回类型将是常量引用。(2)通过区分成员函数是否是const,可以对其进行重载。因为非常量版本的函数对于常量对象是不可用的,所以我们只能在一个常量对象上调用const成员函数。下面的例子中,定义一个名为do_display的私有成员,
阅读全文
摘要:(1)引用是为了尽量避免拷贝操作,节省空间。(2)函数只能返回一个数值,使用引用可以间接返回多个数值。(3)要尽量使用常量引用,不能把const对象、字面值或者需要类型转换的对象传递给普通的引用形参。(4)当数组作为形参的时候。因为不能拷贝数组,所以我们无法以值传递的方式使用数组参数。因为数组会被转
阅读全文