博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一起学习c++11——c++11中的新语法
阅读量:6485 次
发布时间:2019-06-23

本文共 976 字,大约阅读时间需要 3 分钟。

c++11新语法1: auto关键字

c++11 添加的最有用的一个特性应该就是auto关键字。
不知道大家有没有写过这样的代码:

std::map
> > > map;std::map
> > >::iterator it = map.begin();

甚至比这个更复杂的模板嵌套。
这种情况下,不但代码冗长,而且容易出错,出错之后的编译错误提示信息也难以阅读
而使用auto则可以大幅的简化代码的编写,也减少拼写出错的可能

std::map
> > > map;auto it = map.begin();

 

c++11新语法2: nullptr
在没有nullptr之前,空指针的定义如下:

#ifdef __cplusplus   #define NULL    0   #else   #define NULL    ((void *)0)   #endif

因为C++是强类型的,void *是不能隐式转换成其他指针类型的,所以c++的NULL被直接定义为0.

这种情况下有个很扯的错误就是

void foo(int i);  void foo(char* p) ;

这种情况下:

foo(NULL);

是不明确的。

所以在c++11中引入了nullptr

foo(0);foo(nullptr);

解决了这个问题。

c++11新语法2: for循环
c++中常规的for循环如下:

std::vector
v;for(auto it = v.begin(); it != v.end(); it++){ //do anything}

其他语言,比如python中的for循环是这样的

for var in list:    #do anything

cpper会不会感到忧郁?

所以c++11引入了这个:

for(auto v : vector){    // do anything}

 

以上就是c++11中最常用的一些新语法。

 

abelkhan技术论坛:,欢迎大家交流技术

转载于:https://www.cnblogs.com/qianqians/p/5668573.html

你可能感兴趣的文章
VuePress手把手一小時快速踩坑
查看>>
学习constructor和instanceof的区别
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>
让所有IE支持HTML5的解决方案
查看>>
RDD之五:Key-Value型Transformation算子
查看>>
percona 5.7.11root初始密码设置
查看>>
Cognitive Security的异常检测技术
查看>>
Pyrex也许是一个好东西
查看>>
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>