C++11:新特性(11-20)

十一:委托构造函数

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<vector<int> > 里层右尖括号和外层尖括号右空格
  • c++11:vector<vector<int>> 不含有空格

十三:列表初始化对象: 

可以使用 {} 对对象进行初始化

	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 << " ";
	}

 

十四: C++11新加的两种容器

  1. array容器:与内置数组相识,但大小是固定的,不能改变容器大小(不能删除和添加元素)只能修改元素,使用[ ]或at()
  2. forward_list容器:(单链表)

十五:c++11新加的两个函数:

  • cbegin():获取容器第一个元素的迭代器,只可读(const_iterator)
  • cend(): 获取容器最后一个元素的下一位,只可读(const_iterator)

十六: insert的返回值问题:

接收元素个数或范围的insert版本返回指向第一个新加入元素的迭代器,如果范围为空,insert会返回第一个参数

 十七:emplace操作:

  • emplace             指定插入
  • emplace_font    头部插入
  • emplace_back   尾部插入

emplace和 insert  push_back  push_font 的区别:

  • emplace 插入元素时,是直接构造元素。(效率高)
  •  insert  push_back  push_font 会先生成临时对象,然后再压入容器中。

十八:shrink_to_fit操作:(vector、string、deque)

 当不需要的内存过多时,该函数可以指出我们不需要任何多余的内存空间,但不一定会退回内存空间。

 

十九:string的数值转换

 将其他类型的数据转化为string类型的数据

to_string()

    int a = 10;
	string p = to_string(10);//将整形转换为字符型

二十:=delete 定义删除的函数

在函数的参数列表后面加上=delete,可以定义为删除的函数

class son
{
public:
	son(const son& p) = delete;//阻止拷贝
	son& operator=(const son& p) = delete;//阻止赋值
	son& operator[](int a) = delete;//阻止[]访问数据
};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值