![](https://img-blog.csdnimg.cn/da64c5dd790e4954a4ef651f7a9068ad.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
c++11 新特性
文章平均质量分 73
c++11 新特性 笔记总结
呵呵哒( ̄▽ ̄)"
喜欢分享学习笔记,并不一定是正确的,阶段性的学习成果做一下记录,欢迎一起交流讨论,也希望有错误的地方可以向我提出,我会虚心接受并纠正
展开
-
C++11 新特性 ---- 基于范围的for循环
c++11实用特性[c/c++项目开发必备技能][完整课程请关注公众号:爱编程的大丙]_哔哩哔哩_bilibili基于范围的for循环 | 爱编程的大丙 (subingwen.cn)🍒① 基于迭代器遍历关联型容器,auto自动推导,需要使用迭代器的方式取出元素中的键值对(和指针的操作方法相同)it->firstit->second🍒② 基于范围的for循环遍历关联性容器,auto自动推导出的类型是容器中的value_type,相当于一个对组(std:pair)对象提取键值对。原创 2023-08-23 13:47:08 · 233 阅读 · 0 评论 -
C++11 新特性 ---- 自动类型推导
c++11实用特性[c/c++项目开发必备技能][完整课程请关注公众号:爱编程的大丙]_哔哩哔哩_bilibili自动类型推导 | 爱编程的大丙 (subingwen.cn)原创 2023-08-22 19:30:23 · 424 阅读 · 0 评论 -
C++11 新特性 ---- noexcept
🦝② noexcept 修饰的函数如果抛出了异常,编译器可以选择直接调用 std::terminate() 函数来终止程序的运行,这比基于异常机制的 throw() 在效率上会高一些。🦝① 基于异常机制的throw()会带来一些额外的开销,若出现函数抛出异常,会导致函数栈被依次地展开(栈解旋),并自动调用析构函数栈上的所有函数。在C++98中,提供了一套完善的异常处理机制,直接在程序中将各种类型的异常抛出,从而强制终止程序的运行。关键字指定,因此编译器可以推断出函数不会抛出异常,从而提高代码的执行效率。原创 2023-08-21 21:51:22 · 281 阅读 · 0 评论 -
C++11 新特性 ---- 静态断言 static_assert
比如:一个函数总需要输入在一定的范围内的参数,那么程序员就可以对该参数使用断言,以迫使在该参数发生异常的时候程序退出,从而避免程序陷入逻辑的混乱。🦝② 静态断言的条件不能包含函数调用、成员访问或其他运行时操作,因为这些操作只能在运行时执行,而静态断言是在编译时检查条件。🦝① 由于静态断言的表达式是在编译阶段进行检测,所以在它的表达式中不能出现变量,也就是说这个表达式必须是常量表达式。声明了一个断言,它将在运行时检查给定的条件是否成立。声明了一个静态断言,它将在编译时检查给定的条件是否成立。原创 2023-08-21 18:59:46 · 841 阅读 · 0 评论 -
C++11 新特性 ---- 数值类型和字符串之间的转换
由于C++中的数值类型包括 整型 和 浮点型,因此针对不同的类型提供了不同的函数,通过调用这些函数可以将字符串类型转换为对应的数值类型。1.数值类型和字符串之间的转换。2.字符串转换为数值。原创 2023-08-21 17:02:57 · 216 阅读 · 0 评论 -
C++11 新特性 ---- 模板的优化
C++ 函数传递多参数处理 可变参数模板_c++ 可变参数传递_Mr.禾的博客-CSDN博客。⑥ 函数模板使用时,自动类型推导,必须推导出一直的数据类型T,才可以使用。总结:当所有模板参数都有默认模板,函数模板的调用如同一个普通函数。① 在C++98/03标准中,类模板可以有默认的模板参数。② 在C++98/03标准中,不支持函数的默认模板参数。④ C++11 同时使用默认模板参数和模板参数自动推导。③ C++11 结合默认模板参数和模板参数自动推导。类模板中的成员函数可以是一个函数模板。原创 2023-08-07 21:53:00 · 320 阅读 · 0 评论 -
C++11 新特性 ---- final 和 override
若派生类指定了要重写父类的print()方法,使用了 override关键字之后,若写错函数名或者函数参数或者返回值,那么编译器都会提示语法错误,因此有利于提高程序的正确性,降低出错的概率。若使用 final 修饰函数,只能修饰虚函数,并且要把 final 关键字放到类或者函数的后面。final和override | 爱编程的大丙 (subingwen.cn)② 或者某个虚函数不能被重写。① 限制某个类不能被继承。二、override。原创 2023-08-07 15:06:00 · 159 阅读 · 0 评论 -
C++11 新特性 ---- 类成员的快速初始化
【总结】在类内部就地初始化和初始化列表并不冲突(程序正常运行)。看起来是:通过初始化列表指定的值会覆盖就地初始化时指定的值。类成员的快速初始化 | 爱编程的大丙 (subingwen.cn)【总结】使用花括号{}对类的非静态成员初始化, 可以省略等号。① C++11 可以对类内部的非静态成员就地初始化。② 使用初始化列表对类的非静态成员进行初始化。1.C++98 标准的类成员初始化。2.C++11 标准的类成员初始化。2.2 类内部赋值和初始化列表。2.1 初始化类的非静态成员。一、类成员的快速初始化。原创 2023-08-07 14:01:39 · 893 阅读 · 0 评论 -
C++11 新特性 ---- long long 整形
同时,规定了每一种符号整型都有一种对应的无符号整型版本,且它们对应的无符号整型具有相同的存储空间大小。例如:signed int ----------(对应)----------》unsigned int。C++11 标准要求 long long 整型可以在不同平台上有不同的长度,但至少有64位。long long 整型有两种∶。C++11标准规定该类型至少占8字节,它占的字节数越多,对应能够存储的数值也就越大。整型的提升:若参数运算的数据或者传递的参数类型不匹配,整型间会发生隐式的转换。原创 2023-08-07 12:58:26 · 1119 阅读 · 0 评论 -
C++11 新特性 ---- 原始字面量
强调一个细节,在R “xxx(raw string)xxx” 中,xxx要配套,原始字符串必须用括号()括起来。R “xxx(原始字符串)xxx”,其中()两边的字符串可以省略。原创 2023-08-07 12:02:17 · 244 阅读 · 0 评论