首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏从小白开始修炼

    C++11C++11——包装器

    function包装器 1.function包装器概念 function包装器也叫做适配器,C++11中的function本质是一个类模板,也是一个包装器。

    60620编辑于 2023-10-15
  • 来自专栏文章部

    C++11

    C++11的大优势 相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中 约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言 STL中容器新变化 4.1 新增容器 上面圈起来的就是C++11出现的新容器,但是真正有用的是unordered_map和unordered_set两个容器,其他两个容器显得很鸡肋,这也算是C++11 C++11之前拷贝构造: C++11移动构造: 5.2.2 移动赋值 上面是进行构造,如果我们是进行赋值呢? C++11之前拷贝构造+拷贝赋值: C++11拷贝构造+移动赋值: 要注意的是: 浅拷贝的类不需要移动构造,深拷贝的类才需要移动构造。 C++11提供右值引用,本质是为了参数匹配时区分左值和右值。 C++11之后,新增了两个成员函数,移动构造和移动赋值函数。

    43410编辑于 2024-06-06
  • 来自专栏CPP开发前沿

    C++11C++11中不常用特性

    今天主要说的事C++11中的在实际开发中很少用到的特性,这些特性虽然很少用,但是使用之后又让人眼前一亮,心生佩服。 1.1 继承构造函数 C++11中,允许派生函数使用基类的构造函数,这样可以极大简化构造函数的编写,尤其是在基类成构造函数较多的情况下。 2 原始的字面量 编码时如果遇到需要传入文件路径时,一般要加上转义符,才能正确表示一个文件路径,C++11后,新增了原始字符串字面量“R”,原始字面量的使用不需要我们对字符串进行特殊处理,输出时就会输出字符串原始的含义

    60720发布于 2021-11-16
  • 来自专栏ljw

    C++11

    C++11简介 在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了 C++98称为C++11之前的最新C++标准名称。 从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。 相比于 C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中 约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。 声明 c++11提供了多种简化声明的方式,尤其是在使用模板时。 因此,在C++11语法中出现了Lambda表达式。

    57910编辑于 2024-10-24
  • 来自专栏along的开发之旅

    Callbacks in C++11

    pointers to class methods, functors (classes which overload operator()), and lambda functions (since c+ Prior to c++11, this was a relatively intimidating topic, since the syntax of function pointers and pointers (cb_c); Lambda Function The last type of callable we’ll cover is the lambda function (introduced in c+ < std::endl; return EXIT_SUCCESS; } Callbacks are a striking example of how the improvements in c+ for implementing callbacks in your own project, and perhaps that it will spark interest in exploring c+

    61520发布于 2020-11-24
  • 来自专栏C++

    C++11(3)

    可变参数模版 C++11 的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板,相比C++98/03,类模版和函数模版中只能含 固定数量 的模版参数,可变模版参数无疑是一个巨大的改 同时还用到了 C++11 的另外一个特性 —— 初始化列 表, 通过初始化列表来初始化一个变长数组 , {(printarg(args), 0)...} 因此,在 C++11 语法中出现了 Lambda 表达式; lambda表达式 先展示下lambda表达式的使用; int main() { vector<Goods> v = { { "苹果", _evaluate; }); } 上述代码就是使用 C++11 中的 lambda 表达式来解决,可以看出 lambda 表达式实际是一个匿名函 数。 因此 C++11 中 最简单的 lambda 函数为: []{...} ; 该 lambda 函数不能做任何事情。

    55210编辑于 2024-11-19
  • 来自专栏我的博客

    C++11】异常

    例如: void func() throw(std::runtime_error, std::logic_error); // 可能抛出两种异常 • C++11对异常规范进行了重大改进: 用noexcept

    19210编辑于 2025-12-22
  • 来自专栏sofu456

    C++11特性

    VS2010版本的C++新增了C++11特性,对原有的C++标准库扩展,融合BOOST库等三方库 1.关键字 auto自动类型推倒

    75420发布于 2020-06-16
  • 来自专栏C++

    C++11(1)

    所以最终定名为 C++11C++11优势 C++11是继1998年的后更新的C++大版本;C++11对比C++98带来了数量可观的变化,增加了很多新特性。 相比较而言C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多。所以对C++11的学习是很重要的。 这里是C++11的具体内容C++11 - cppreference.com,有兴趣的可以看看; 统一的列表初始化 1.{}初始化 在 C++98 中,标准允许使用花括号 {} 对数组或者结构体元素进行统一的列表初始值设定 main() { int array1[] = { 1, 2, 3, 4, 5 }; int array2[5] = { 0 }; Point p = { 1, 2 }; return 0; } C+ 所以出于清晰和安全的角度考虑, C++11 中新增了 nullptr ,用于表示空指针。

    39400编辑于 2024-11-19
  • 来自专栏C++

    C++11(2)

    左值引用和右值引用 介绍 传统的C++语法中就有引用的语法,而C++11中新增了的右值引用语法特性,所以从现在开始我们之前学习的引用就叫做左值引用。无论左值引用还是右值引用,都是给对象取别名。 C++11 中, std::move() 函数 位于 头文件中,该函数名字具有迷惑性, 它 并不搬移任何东西,唯一的功能就是将一个左值强制转化为右值引用,然后实现移动语义 int main() C++11 新增了两个:移动构造函数和移动赋值运算符重载。 针对移动构造函数和移动赋值运算符重载有一些需要注意的点如下: 1. Person s3 = std::move(s1); Person s4; s4 = std::move(s2); return 0; } 强制生成默认函数的关键字 default: C+C++11 中更简单,只需在该函数声明加上 =delete 即 可,该语法指示编译器不生成对应函数的默认版本,称 =delete 修饰的函数为删除函数。

    32210编辑于 2024-11-19
  • 来自专栏龙进的专栏

    C++11:Random

    这篇文章讲解一下C++11的在随机数上的新特性。没记错的话,之前被爆出旧版的C++的随机函数存在安全漏洞(没记错的话好像微软又重写了一个安全版的?)。 C++11的随机数的用法如下 先定义一个default_random_engine default_random_engine engine(static_cast<unsigned int>(time

    50740编辑于 2022-10-31
  • 来自专栏芝士就是菜

    C++11(下篇)

    C++11中,新增了两个默认成员函数 移动构造函数 移动赋值运算符重载 针对这两个新的默认成员函数,有了新的注意事项: 1、如果没有自己实现移动构造,且没有实现析构函数、拷贝构造、拷贝赋值重载中的任何一个 释放ptr指向的空间要用 operator delete(),因为 delete会调用析构 可变参数模板 C++11的新特性可变参数模板能够创建可以接受可变参数的函数模板和类模板 我们把带省略号的参数称为 = { (PrintArg(args), 0)... }; cout << endl; } int main() { ShowList(1, 'A', 3.14); return 0; } C+ 注意: 在lambda函数定义中,参数列表和返回值类型都是可选部分,而捕捉列表和函数体可以为空,C++11中,最简单的lambda函数为:[] () ;该函数不能做任何事情,只是符合语法。

    90610编辑于 2023-04-20
  • 来自专栏巡天遥看一千河

    C++11 lambda

    C ++ 11引入了lambda,该lambda提供了一种语法上轻量级的方式来动态定义函数。它们还可以通过值或引用来捕获(或封闭)周围范围的变量。在本文中,我们将研究lambda与纯函数和函子类(实现的类)在实现方面的区别operator()。

    1.4K30发布于 2021-03-25
  • 来自专栏Linux网络

    C++11】异常

    前言 上文我们学习到了C++11中类的新功能【C++11】类的新功能-CSDN博客 本文我们来学习C++下一个新语法:异常 1.异常的概念 异常的处理机制允许程序在运行时就出现的问题进行相应的处理 C++11中表示方式会更简便一些,函数后面加noexcept表示不会抛出异常。而函数后面什么都不加则表示可能会抛出异常。

    9410编辑于 2026-01-14
  • 来自专栏cpp

    C++11 std::async

    //g++ -std=c++11 -pthread -g std_future.cpp -o main // async example #include <iostream> // std

    56120发布于 2018-08-23
  • 来自专栏程序员

    C++11之nullptr

    所以C++11引入了新的指针空值nullptr。很好的解决了上面出现的违背原意的操作。C++11把nullptr作为一个关键字引入。它本身是“指针空值类型”的一个常量。

    73420发布于 2019-05-25
  • 来自专栏ClearSeve

    C++11内存模型

    variable Thread-1: Thread-2: x = 100; // A std::cout << x; // B C+ C++11的内存模型共有6种,分四类。其中一致性的减弱会伴随着性能的增强。 参考链接 【1】C++11中的内存模型上篇 – 内存模型基础 【2】C++11中的内存模型下篇 – C++11支持的几种内存模型 【3】理解 C++ 的 Memory Order 【4】如何理解 C++

    97730编辑于 2022-02-11
  • 来自专栏算法

    C++11语法(一)

    一、引言         C++11是C++的一个非常重要的版本,在当时C++11问世的时候提供了非常具有创新性的编程方案供其他编程语言学习。 比如说auto自动推导类型、范围for、右值引用、lambda表达式、装载器、绑定器等等都是C++11的杰作。由于篇幅较长,所以C++11会分为三个阶段,越往后难度会越大。          二、C++11的初阶语法         2.1       万物皆可列表初始化                 也就是使用{}花括号初始化。花括号会将数据自动转化为要初始化的数据。 std::cout << std::endl; return 0; }         2.4        右值引用                 右值引用和左值引用是相对的,C+

    11910编辑于 2025-12-30
  • 来自专栏算法

    C++11语法(2)

    二、 C++11中的参数包解析 C++既然想单独搞出一个语言,肯定就会扩大他的兼容性。对于关键性的语法提供更便捷、的使用方法。 va_end(ap); } int main() { xprint(9,1,2,3,4,5,6,7,8,9); return 0; } 2.2 C+

    15410编辑于 2025-12-30
  • 来自专栏c/c++

    C++11】入门基础

    C++11简介 C++11是C++编程语言的一个重要版本,它于2011年发布。 相比于C++98/03,C++11给C++带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。 声明 c++11提供了多种简化声明的方式,尤其是在使用模板时。 所以C++11中废弃auto原来的用法,将其用于实现自动类型推断。 范围for循环在C++11中引入,可以提供一种更简洁、直观的遍历方式,减少了手动管理循环变量的复杂性。 5. 结语   C++11的引入极大地扩展了C++的功能,并且提供了更加简洁和安全的编程方式。

    50510编辑于 2024-08-29
领券