C++11中,委托构造函数使用它所属类的其他构造函数执行它自己的初始化过程,或这说自己的一些职责委托给了其他构造函数。
格式为:
- class data
- {
- public:
- //构造函数
- data(int a,int b,int c):_a(a),_b(b),_c(c){}
- //委托构造函数
- data() :data(10, 20, 30){}
- data(int a):data(a,10,10){}
-
- int _a;
- int _b;
- int _c;
- };
- 老式: vector
> 里层右尖括号和外层尖括号右空格 - c++11:vector
> 不含有空格
可以使用 {} 对对象进行初始化
- vector<int>p{4,5,2,3,7};
- for (int i : p)
- {
- cout << i << " ";
- }
- cout << endl;
- deque<int>g{ 10,20,4,5,7 };
- for (int i : g)
- {
- cout << i << " ";
- }
- array容器:与内置数组相识,但大小是固定的,不能改变容器大小(不能删除和添加元素)只能修改元素,使用[ ]或at()
- forward_list容器:(单链表)
- cbegin():获取容器第一个元素的迭代器,只可读(const_iterator)
- cend(): 获取容器最后一个元素的下一位,只可读(const_iterator)
接收元素个数或范围的insert版本返回指向第一个新加入元素的迭代器,如果范围为空,insert会返回第一个参数
- emplace 指定插入
- emplace_font 头部插入
- emplace_back 尾部插入
emplace和 insert push_back push_font 的区别:
当不需要的内存过多时,该函数可以指出我们不需要任何多余的内存空间,但不一定会退回内存空间。
将其他类型的数据转化为string类型的数据
to_string()
- int a = 10;
- string p = to_string(10);//将整形转换为字符型
在函数的参数列表后面加上=delete,可以定义为删除的函数
- class son
- {
- public:
- son(const son& p) = delete;//阻止拷贝
- son& operator=(const son& p) = delete;//阻止赋值
- son& operator[](int a) = delete;//阻止[]访问数据
- };