• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2019-12-01 03:10 Aet 隐藏边栏 |   抢沙发  50 
文章评分 3 次,平均分 5.0

long long

bool 布尔类型 未定义
char 字符 8位
wchar_t 宽字符 16位
char16_t Unicode字符 16位
char32_t Unicode字符 32位
short 短整型 16位
int 整型 32位
long 长整型 32位
long long 长整型 64位
float 单精度浮点型 6位有效数字
double 双精度浮点型 10位有效数字
long double 扩展精度浮点型 10位有效数字

C++规定,一个int至少和一个short一样大,一个long至少和一个int一样大,一个long long至少和一个long一样大。
其中,long long就是C++11的新定义。

列表初始化

  • 用花括号初始化对象
    注意:
    如果我们用来初始化的初始值存在丢失信息的风险,编译器会报错

nullptr

空指针:不指向任何对象,得到空指针的最直接的办法就是用nullptr来初始化指针。
nullptr是一种特殊的字面值,它可以被转换成任意其他的指针类型。

constexpr

  • C++11规定,允许将变量声明为constexpr类型,以便由编译器来验证变量的值是否是一个常量表达式
  • 声明为constexpr的变量一定是一个常量,而且必须用常量表达式去初始化它。

对于某个给定的内联函数或者constexpr函数来说,它的多个定义必须完全一致。基于这个原因,内联函数和constexpr函数通常定义在头文件中。

类型别名

auto

编译器替我们分析表达式的类型
这个类型的推断结果,是根据表达式的初始值(会计算出表达式的值)来确定的

decltype

编译器帮我们分析表达式的类型
这个推断结果,是不计算表达式的值的,而且,表达式如果是函数,编译器同样也不会调用函数,只获取该函数的返回类型

类内初始化

C++11规定,可以为类的数据成员提供一个类内初始值。创建对象时,类内初始值用于初始化数据成员。

范围for循环

关于vector

列表初始化vector对象

容器的cbegin和cend

cbegin
返回指示容器第一个元素的const迭代器
cend
返回指示容器最后一个元素下一位置的const迭代器

特点:
不管容器对象本身是不是const属性的,cbegin和cend返回的迭代器都是带有const属性的

标准库函数begin和end

C++11引入了两个名为begin和end的函数
这两个函数在iterator头文件中
begin返回指向array首元素的指针,end返回指向array尾元素下一位置的指针

除法的舍入规则

在除法运算中,如果两个运算对象的符号相同则商为正(如果不为0的话),否则商为负。
C++早期的版本允许符号为负值的商向上或向下取整
C++11新标准则规定商一律向0取整(即直接切除小数部分)。

大括号值列表赋值

sizeof用于类成员

C++11标准允许我们通过使用域作用符来获取类成员的大小。
sizeof运算符的结果部分地依赖于其作用的类型:

  • 对char或者类型为char的表达式执行sizeof运算,结果为1。
  • 对引用类型执行sizeof运算,得到被引用对象所占空间的大小。
  • 对指针执行sizeof运算,得到指针本身所占空间的大小。
  • 对解引用指针执行sizeof运算,得到指针指向的对象所占空间的大小,指针不需要有效。
  • 对数组执行sizeof运算,得到整个数组所占空间的大小,等价于对数组中所有元素各执行一次sizeof运算然后将所得结果求和。
    sizeof运算不会讲数组转换成指针来处理。
  • 对string对象或vector对象执行sizeof运算,只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间。

标准库initializer_list类

为了编写能处理不同数量实参的函数,C++11标准提供了两种主要的方法:

  • 如果所有的实参类型相同,可以传递一个名为initializer_list的标准库类型
  • 如果实参的类型不同,我们可以编写一种特殊的函数,也就是所谓的可变参数模板
  • C++还有一种特殊的形参类型(省略符),可以用它传递可变数量的实参(这种功能一般只用于于C函数交互的接口程序)。
    initializer_list是一种标准库类型,用于表示某种特定类型的值的数组。
    它定义在同名头文件中。
    和vector不同的是,initializer_list对象中的元素永远是常量。

列表初始化返回值

C++11标准规定,函数可以返回花括号包围的值的列表。
类似于其他返回结果,此处的列表也用来对表示函数返回的临时量进行初始化。

如果,函数返回的是内置类型,则花括号包围的列表最多包含一个值,而且,该值所占空间不应该大于目标类型的空间。
如果,函数返回的是类类型,由类本身定义初始值如何使用。

定义尾置返回类型

将函数的返回类型放在最后边,而本来放置返回类型的地方则用auto代替,格式如下:

使用default生成默认构造函数

在C++11标准中,如果我们需要默认的行为,那么可以通过在参数列表后面写上= default来要求编译器生成构造函数。
其中,= default既可以和声明一起出现在类的内部,也可以作为定义出现在类的外部。
如果= default在类的内部,则默认构造函数是内联的;然后,如果它出现在外部,则该成员默认情况下不是内联的。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-21
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享