摘要:智能指针是为了便于管理动态内存,能够自动管理释放所指向的对象。智能指针共有三种:1、shared_ptr允许多个指针指向同一个对象;2、unique_ptr独占所指向的对象;3、weak_ptr是一个伴随类,它是一种弱引用,指向shared_ptr所管理的对象。这三种类型都定义在memory头文件中...
阅读全文
摘要:字面值常量类:数据成员都是字面值类型的聚合类是字面值常量类。如果一个类不是聚合类,但是它符合一下要求,则它也是个字面值常量类: 1、数据成员都必须是字面值类型。 2、类必须至少含有一个constexpr构造函数。 3、如果一个数据成员含有类内初始值,则内置类型成员的初始值必须是一条常量表达式;或者如...
阅读全文
摘要:聚合类定义:1、所有的成员都是public的。 2、没有定义任何构造函数。 3、没有类内初始值。 4、没有基类,也没有virtual函数。聚合类的初始化:我们可以提供一个花括号括起来的成员函数初始值列表,并用它初始化聚合类的数据成员: 例如:Data val={0,"Anna"};
阅读全文
摘要:构造函数定义:每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。需要注意的几点:1:构造函数不能被声明为const的,当我们创建一个const对象时,直到构造函数完成初始化过程,对象才能真正取得其“常量”属性。因此构造函数在con...
阅读全文
摘要:这是在面试中遇到的一个问题,没有答出来,后来上网上查了一些资料,终于弄明白了:一、首先c++标准规定成员变量必须在调用构造函数前进行初始化(这一点很重要)二、如果我们在构造函数中对成员变量进行初始化,那么在进入构造函数之前,编译器会调用该成员变量的默认构造函数对成员变量进行初始化,当进入构造函数后,...
阅读全文
摘要:1、cons可以限定一个变量,是的它的值不能被改变2、默认情况下,const对象仅在文件内有效。 编译器在编译时,会把程序中所有用到const变量的地方替换成const的初始值,因此每个用到const变量的文件中都要有const变量的定义,为了支持这一用法,同时避免同一变量的多次定义,cons...
阅读全文
摘要:对于大型容器而言hash_map要比map快5至10倍的元素查找速度。map对其元素类型要求有一个 m1; //用 m2; //用Nocase()比较串hash_map hm1; //用Hash()散列,用==比较hash_map hm2; //用hfct()散列,用==比...
阅读全文
摘要:mutimap很想map,但是他允许重复的关键码iterator insert(const value_type&);//返回iterator,不是pair//无下标操作符[]equal_range()、lower_bound()和upper_bound()操作 是用一个关键码访问多重元素值的基本手...
阅读全文
摘要:C++中关联数组是一种内部类型,也被称为映射(map)一个map就是一个(关键吗,值)的对偶序列,他提供基于关键码的快速提取操作map的关键吗具有唯一性map提供双向迭代器map的关键吗要提供一个小于操作,保持自己元素的有序性, 迭代通过map时,是按顺序的一个map就是一个pair的一个序列,ma...
阅读全文