【C++11 新特性】教程文章相关的互联网学习教程文章

C++11 新特性【代码】

经过作者的不断迭代,一本书往往会先后发布很多个版本,其中每个新版本都是对前一个版本的修正和更新。C++ 编程语言的发展也是如此。截止到目前(2020 年),C++ 的发展历经了以下 3 个个标准: 2011 年,新的 C++ 11 标准诞生,用于取代 C++ 98 标准。此标准还有一个别名,为“C++ 0x”;2014 年,C++ 14 标准发布,该标准库对 C++ 11 标准库做了更优的修改和更新;2017 年底,C++ 17 标准正式颁布。 C++11 是第二个真正意义上的 ...

C++新特性 shared_ptr与weak_ptr【代码】

/*shared_ptr 与weak_ptr */ #include <memory> #include <iostream>void foo_construct() {int * p = new int(3);std::shared_ptr<int> sptr(p);std::shared_ptr<int> sptr2(new int(4));std::shared_ptr<int> sptr3 = sptr2; //指针引用加1std::shared_ptr<int> sptr4 = std::make_shared<int>(5);/*{std::shared_ptr<int> sptr5(p);{std::shared_ptr<int> sptr6(p);}}//这么写会报错,原因生活会,因为5和6都是指向同一个对象,...

C++新特性探究(13.5):右值引用【代码】【图】

运行结果: 附上例代码: //小问学编程 //左值:在内存中有确切位置的值 //右值:是一个暂时存在的值 #include <iostream> using namespace std;int main() {int a(10);//a在内存中有地址,数据是10int b(11);//b在内存中有地址,数据是11int c=a+1;//&(a+1)没有内存地址,是一个临时的值,是一个右值。仅短暂存在于寄存器中int d=a+2;//int& f=c; //左值引用&——是对内存值的引用int&& g=a+3;//右值引用&&——是对暂时存在值的...

张三思评博客:C++11新特性快看-乱序优化版【代码】

标题: 【C++ Primer】C++11特性总结 作者: lx青萍之末 原文链接: https://blog.csdn.net/daaikuaichuan/article/details/79240196 文章目录 * 1、long long 类型 * 2、列表初始化 * 3、nullptr 空指针 * 4、constexpr变量 * 5、constexpr函数 * 6、using类型别名 * 7、auto类型指示符 * 8、decltype类型指示符 * 9、范围for语句 * 10、尾置返回类型 * 11、强枚举类型 * 12、=default 生成默认构造函数 * 13、类对象成员的类内初始化...

C++新特性

C++2b 功能特性 请注意,随 C++2b 标准草案的逐步推进,此列表可能会发生变化。 C++23 核心语言功能特性 C++23 功能特性提案GCCClangMSVCApple ClangEDG eccpIntel C++IBM XLC++Sun/Oracle C++Embarcadero C++ BuilderCrayPortland Group (PGI)Nvidia nvcc[折叠](有符号) size_t的字面量后缀P0330R8C++23 功能特性提案GCCClangMSVCApple ClangEDG eccpIntel C++IBM XLC++Sun/Oracle C++Embarcadero C++ BuilderCrayPortland Grou...

C++2.0部分新特性【代码】【图】

uniform initialization一致性初始化//赋初值 vector<int>v1{ 1, 12, 6, 0 }; vector<string>v2{ "liming", "jenny", "denny" };编译器看到以上{}赋值,就会做出一个initializer_list<T>,它的背后是一个array<T,n>,所有容器都有一个参数为initializer_list<T>的构造函数,当用户使用{}来初始化时,编译器会调用那个构造函数。 vector的构造函数 vector(std::initializer_list<value_type> ilist){range_init(ilist.begin(), ili...

C++运行阶段类型识别(Runtime Type Identification)(C++新特性)【代码】

编译时开销 编译器在编译代码时,主要进行:词法分析(识别单词,确认词类:标识符、关键字、字符串、数字等等)、语法分析(识别短语和句型的语法属性,生成语法树)、语义分析(确认单词,句型的语义特征,如加减乘除等)、代码优化和代码生成等。模板、类层次结构、强制类型检查等新特性,以及大量使用了这些新特性的STL标准库都增加了编译器负担。 运行时开销 C++中有可能引入额外运行时开销的新特性包括: 虚基类虚函数RTTI(...

C++11新特性——for遍历【代码】【图】

熟悉C++98/03的对于for循环就再了解不过了,如果我们要遍历一个数组,那么在C++98/03中的实现方式:int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < 10; i++) cout << arr[i]; 而遍历容器类的For如下:std::vector<int> vec {1,2,3,4,5,6,7,8,9,10}; for (std::vector<int>::iterator itr = vec.begin(); itr != vec.end(); itr++) cout << *itr; 不管上面哪一种方法,都必须明确的确定for...

C++11新特性【代码】【图】

这篇文章记录下部分C++11的新特性,有很多常用的也有很多一下子接受不了的。 1.long long类型。 2.列表初始化。 3.nullptr常量。 4.constexpr常量。 5.类型别名声明。 6.auto类型指示符。 7.decltype类型指示符。 8.标准库函数begin和end。 9.initializer_list形参。 10.lambda表达式。 1.long long 类型。 2.列表初始化。int a=0; int a={0}; int a{0}; int a(0);上面是四种初始化方式,其中花括号初始化已经在c++11中全面...

c++ 11新特性小结

【shared_ptr】 c++ 11模板库的<memory>头文件中定义的智能指针,即 shared_ptr 模板,用于自动释放 new 动态分布的内存空间。 只要将new运算符返回的指针 ptr 交给一个shared_ptr对象托管,就不必写 delete ptr 语句,托管 ptr 指针的 shared_ptr 对象在消亡时会自动执行 delete ptr。 shared_ptr 对象能像指针 ptr 一样使用,即 *shared_ptr 就是 *ptr。 A* a = new A(); std::shared_ptr<A> sp(a); // *sp 等价于 *a // delet...

C++11新特性【代码】【图】

补充一下C++11新特性,被问到了 1,nullptr nullptr 出现的目的是为了替代 NULL(某些编译器把NULL定义为0)。 专门用来区分空指针、0 nullptr 的类型为 nullptr_t 能够隐式的转换为任何指针或成员指针的类型,也能和他们进行相等或者不等的比较。 当需要使用 NULL 时候,养成直接使用 nullptr的习惯。 2,auto关键字 类型推导,注意个别的用法(不能推导数组) 常用于迭代器的类型推导for(vector<int>::const_iterator itr = vec...

Cocos2dx游戏教程(六):“见缝插针”,菜单Menu与C++11新特性【代码】【图】

上一节我们已经实现了第二个场景界面,最后按下按钮发现没有反应是不是,这一节将会给大家介绍下Cocos2dx另一个重要的对象,菜单Menu。 一、Menu介绍 提到Menu,不得不提到MenuItem,MenuItem继承自Node,所以它的子类菜单项都可以使用Node的相关操作。 MenuItem是所有菜单项的父类,建议不要直接使用该类,因为它并不包含具体显示的功能。 作为其它菜单项的父类,主要提供了一下三个功能: (1)提供了基本按钮的状态:正常、选中...

C++2.0新特性(六)——<Smart Pointer(智能指针)之shared_ptr>【代码】【图】

Smart Pointer(智能指针)指的是一类指针,并不是单一某一个指针,它能知道自己被引用的个数以至于在最后一个引用消失时销毁它指向的对象,本文主要介绍C++2.0提供的新东西 一、Smart Pointer分类C++2.0提供了两大类型的智能指针,该模块都被定义于头文件<memory>: - 文章图片" /> 二、标准库提供的智能指针类 2.1 class shared_ptr提供了共享式拥有语义,也就是说当对个shared_ptr可以共享(或拥有)同一个对象,对象的最后...

c++11新特性之右值引用【图】

我们说过一个变量分为两个部分,左值和右值 左值代表变量内存区域 右值代码内存区域所存的值 我们平时说的引用是左值引用,c++11引入了右值引用 右值引用就是绑定到右值上的引用。用&&进行定义 类型 &&引用名 = 表达式 我们看几个例子了解一下double r = 10; double &r1 = r;//正确,左值引用 double &r2 = r + 10;//错误,左值引用右边必须是变量,不可以是表达式 double &&r3 = r;//错误,右值引用右边必须是常量或者表达式 d...

【C++11新特性】 C++11智能指针之weak_ptr

如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr。在学习weak_ptr之前最好对shared_ptr有所了解。如果你还不知道shared_ptr是何物,可以看看我的另一篇文章【C++11新特性】 C++11智能指针之shared_ptr。 1、为什么需要weak_ptr?在正式介绍weak_ptr之前,我们先来回忆一下shared_ptr的一些知识。我们知道shared_ptr是采用引用计数的智能指针,多个shared_ptr实例可以指向同一个动态对象,并维护了一个共享的...