C++11:牛逼怪

1. 统一的初始化方法

2. 成员变量默认初始值

3. auto关键字

  1. 编译器自动判断变量的类型,必须初始化(根据右边初始化内容 判断)

  2. 类型名长是,可以用auto替代

map<string, int, greater<string> > mp;
auto i = mp.begin;
  1. C++11中可以把函数返回值类型写在函数后面:Fun(...) -> type{ ... }
template<class T1, class T2>
auto add(T1 x, T2 y) -> decltype(x + y){
	return x + y;
}

TIPS: decltype可判断变量类型

4. decltype关键字

  1. 求表达式的类型

5. 智能指针shared_ptr

  1. 头文件:<memory>
  2. 通过shared_ptr的构造函数,可以让shared_ptr对象托管一个new运算符返回的指针(托管一个动态分配的存储空间),写法如下:
shared_ptr<T> ptr(new T);
//T可以是 int, char, 类名等各种类型
  • 此后ptr就可以像 T* 类型的指针一样来使用,即*ptr 就是一个用new 动态分配的那个对象,而且不必操心释放内存的事情
  1. 多个shared_ptr对象可以同时托管一个指针,系统会维护一个托管计数,当无shared_ptr托管该指针时,delete该指针
  2. shared_ptr对象不能托管指向动态分配的数组的指针,否则程序允许会出错

6. 空指针nullptr

7. 基于范围的for循环

int main(){
	vector<int> v;
	v.push_back(2);
	v.push_back(1);
	v.push_back(5);
	v.push_back(6);
	v.push_back(3);
	for(auto i : v){
		printf("%d", i);
	}
	//输出:21563
	return 0;
}

8. 右值引用和move语义

9. STL 无序容器(哈希表):

  1. 头文件:<unordered_map>
  2. 用法、功能与map一样,但时间效率高(空间换时间)
  3. 哈希表插入和查找的时间复杂度几乎是常数

10. 正则表达式

  1. 头文件<regex>
  2. 字符串:描述了一种字符串模式(规则)
  3. regex_match("x", reg),判断x是否与正则表达式reg匹配成功(成1否0)

11. Lambda表达式

Q1:
Q2:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值