首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏CSDN搜“看,未来”

    C++编程经验(12):C++11新特性

    除了能够在适当的时间自动删除指向的对象外,他们的工作机制很像C++的内置指针。 在使用对象的时候,使用强智能指针;在引用对象的时候,使用弱智能指针。 详情转:C++编程经验(9):智能指针 – 裸指针管得了的我要管,裸指针管不了的我更要管! C++编程经验(11):std::function 和 bind绑定器,虽然在这一篇里面专门讲过了,但是感觉有点抽象,重新捋一下,不然我也不长记性呐。 C++11为了解决这个问题,提供了std::move()方法来将左值转换为右值,从而方便应用移动语义。move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转义,没有内存拷贝。 容器的emplace成员 emplace操作是C++11新特性,新引入的的三个成员emplace_front、emplace 和 emplace_back。

    1.5K20发布于 2021-10-09
  • 来自专栏cwl_Java

    C++编程之美-代码清单1-11

    代码清单1-11 int nPerson[]; // nPerson[i]表示到第i层的乘客数目 int nFloor, nMinFloor, nTargetFloor; nTargetFloor =

    26530编辑于 2022-11-30
  • 来自专栏高性能服务器开发

    C++并发编程(C++11到C++17)

    由此,掌握并发编程技术,利用多处理器来提升软件项目的性能将是软件工程师的一项基本技能。 本文以C++语言为例,讲解如何进行并发编程。并尽可能涉及C++11,C++14以及C++17中的主要内容。 C++与并发编程 前面我们已经了解到,并非所有的语言都提供了多线程的环境。 即便是C++语言,直到C++11标准之前,也是没有多线程支持的。 这个状态在C++ 11标准发布之后得到了改变。并且,在C++ 14和C++ 17标准中又对并发编程机制进行了增强。 下图是最近几个版本的C++标准特性的线路图。 | C++ 11 |提供与任何锁类型关联的条件变量 | | notify_all_at_thread_exit |C++ 11 | 安排到在此线程完全结束时对 notify_all 的调用 | | cv_status 结束语 在本篇文章中,我们介绍了C++语言中新增的并发编程API。

    1.9K51发布于 2021-07-16
  • 来自专栏CSDN搜“看,未来”

    C++编程经验(11):std::function 和 bind绑定器

    文章目录 简介 std::function 可调用对象 std::bind std::placeholders 简介 在前面C++集群的项目里面大量应用到了绑定器来做解耦操作,那么,绑定器到底是什么呢 ---- std::function 在这一篇博客里(C++搭建集群聊天室(八):网络层代码与业务层代码(登录注册)解耦),我写过这样的代码: #include <functional> ··· using 可调用对象 在C++中,有“可调用对象”这么个概念: 函数指针; 具有operator()成员函数的类对象(仿函数); 可以被转换为函数指针的类对象; 类成员(函数)指针。

    1.8K10发布于 2021-10-09
  • 来自专栏cwl_Java

    C++编程之美-结构之法(代码清单3-11)

    代码清单3-11 // 数据结构定义 struct NODE { NODE* pLeft; // 左子树 NODE* pRight; // 右子树

    24720编辑于 2022-11-30
  • 来自专栏公众号:拓跋阿秀

    C++并发编程(C++11到C++17)

    由此,掌握并发编程技术,利用多处理器来提升软件项目的性能将是软件工程师的一项基本技能。 本文以C++语言为例,讲解如何进行并发编程。并尽可能涉及C++11,C++14以及C++17中的主要内容。 C++与并发编程 前面我们已经了解到,并非所有的语言都提供了多线程的环境。 即便是C++语言,直到C++11标准之前,也是没有多线程支持的。 这个状态在C++ 11标准发布之后得到了改变。并且,在C++ 14和C++ 17标准中又对并发编程机制进行了增强。 下图是最近几个版本的C++标准特性的线路图。 | C++ 11 |提供与任何锁类型关联的条件变量 | | notify_all_at_thread_exit |C++ 11 | 安排到在此线程完全结束时对 notify_all 的调用 | | cv_status | C++ 11 |列出条件变量上定时等待的可能结果 | 至此,我们还有一个地方可以改进。

    1.8K40发布于 2021-09-14
  • 来自专栏巡天遥看一千河

    C++ 11 Atomic

    C++ 封装 我们都知道多核编程常用锁避免多个线程在修改同一个数据时产生race condition。当锁成为性能瓶颈时,我们又总想试着绕开它,而不可避免地接触了原子指令。 C++11正式引入了原子指令,我们就以其语法描述。 顾名思义,原子指令是对软件不可再分的指令,比如x.fetch_add(n)指原子地给x加上n,这个指令对软件要么没做,要么完成,不会观察到中间状态。 通过这个简单例子,你可以窥见原子指令编程的复杂性了吧。 理解C++的原子操作 事实上,Sequentially-consistent ordering是目前绝大多数编译器的缺省设置。 C++11所规定的这6种模式,其实并不是限制(或者规定)两个线程该怎样同步执行,而是在规定一个线程内的指令该怎样执行。是的,我知道这部分的文档(规定)以及给出的例子里面,满屏都是多线程。

    1.4K31发布于 2021-03-24
  • 来自专栏Reck Zhang

    C++ 11 - singleton

    singleton // T must be: no-throw default constructible and no-throw destructible template <typename T> struct Singleton { private: struct object_creator { // This constructor does nothing more than ensure that instance() // is call

    55420发布于 2021-08-11
  • 来自专栏cwl_Java

    C++编程之美-数字之魅(代码清单2-11)

    代码清单2-11 Kbig(S, k): if(k <= 0): return [] // 返回空数组 if(length S <= k):

    24320编辑于 2022-11-30
  • 来自专栏学习

    C++】C++11

    1.C++11的发展历史 C++11C++ 的第⼆个主要版本,并且是从 C++98 起的最重要更新。它引⼊了⼤量更改,标准化了既 有实践,并改进了对 C++ 程序员可⽤的抽象。 C++03 与 C++11 期间花了 8 年时间,故⽽这是迄今为⽌最⻓的版本间隔。从那时起,C++ 有规律地每 3 年更新⼀次。 纯右值和将亡值C++11中提出的,C++11中的纯右值概念划分等价于 C++98中的右值。 原理 2 :更本质去看没有可变参数模板,我们实现出这样的多个函数模板才能⽀持 // 这⾥的功能,有了可变参数模板,我们进⼀步被解放,他是类型泛化基础 // 上叠加数量变化,让我们泛型编程更灵活 C++还⽀持更复杂的包扩展,直接将参数包依次展开依次作为实参给⼀个函数去处理。

    58110编辑于 2025-02-05
  • 来自专栏叹世界

    C++ 11 新特性

    C++ 11 的一些新特性 原始字面量 R("string...") /text.cc 上面换了个行)"; std::cout << str << std::endl; } [Running] cd "/root/code-server/c11 -new/" && g++ 字符串字面量.cc -o 字符串字面量 && "/root/code-server/c11-new/"字符串字面量 ../..

    57710编辑于 2022-01-12
  • 来自专栏用户2442861的专栏

    c++ 11 新特性

    注:作者 Danny Kalev 曾是 C++ 标准委员会成员。 Lambda 表达式 Lambda 表达式的形式是这样的: [cpp] view plaincopyprint? vector<int> vi;     typedef decltype (vi.begin()) CIT;     CIT another_const_iterator;     统一的初始化语法 C+ delete;     };     NoCopy a;     NoCopy b(a); //编译错误,拷贝构造函数是 deleted 函数   nullptr nullptr 是一个新的 C+ 下面介绍一些 C++11 的标准库新特性: 线程库 从程序员的角度来看,C++11 最重要的特性就是并发了。 如果觉得 C++ 变化太大了,不必惊恐,花点时间来学习就好了。可能在你融会贯通新特性以后,你会同意 Stroustrup 的观点:C++11 是一门新的语言——一个更好的 C++

    1.2K10发布于 2018-09-20
  • 来自专栏全栈程序员必看

    Effective C++ 条款11

    如上代码,自我赋值的时候会出现删除自身数据的操作,这样非常危急。由于p变成了野指针。

    29210编辑于 2022-07-08
  • C++11 并发编程基础(一):并发、并行与C++多线程

    C++11标准在标准库中为多线程提供了组件,这意味着使用C++编写与平台无关的多线程程序成为可能,而C++程序的可移植性也得到了有力的保证。 另外,并发编程可提高应用的性能,这对对性能锱铢必较的C++程序员来说是值得关注的。1. 何为并发并发指的是两个或多个独立的活动在同一时段内发生。 因此,在多线程编程中,我们必须确保每个线程锁访问到的数据是一致的。C++中的并发与多线程C++标准并没有提供对多进程并发的原生支持,所以C++的多进程并发要靠其他API——这需要依赖相关平台。 C++11 标准提供了一个新的线程库,内容包括了管理线程、保护共享数据、线程间的同步操作、低级原子操作等各种类。 C++11 新标准中引入了几个头文件来支持多线程编程:<thread>:包含std::thread类以及std::this_thread命名空间。管理线程的函数和类在 中声明.

    31340编辑于 2023-11-10
  • 来自专栏我的技术专栏

    C++11 并发编程基础(一):并发、并行与C++多线程

    C++11标准在标准库中为多线程提供了组件,这意味着使用C++编写与平台无关的多线程程序成为可能,而C++程序的可移植性也得到了有力的保证。 另外,并发编程可提高应用的性能,这对对性能锱铢必较的C++程序员来说是值得关注的。 1. 何为并发 并发指的是两个或多个独立的活动在同一时段内发生。 因此,在多线程编程中,我们必须确保每个线程锁访问到的数据是一致的。 3. C++中的并发与多线程 C++标准并没有提供对多进程并发的原生支持,所以C++的多进程并发要靠其他API——这需要依赖相关平台。 C++11 新标准中引入了几个头文件来支持多线程编程: < thread > :包含std::thread类以及std::this_thread命名空间。

    1.4K10编辑于 2022-05-06
  • 来自专栏ACM小冰成长之路

    C++ 11 新特性

    decltype(sizeof(0)); 也可以用来对匿名类型重用,结合 using/typedef\text{using/typedef}using/typedef 搭配使用可以重命名匿名类型,在泛型编程中结合

    1K40发布于 2019-05-27
  • 来自专栏全栈程序员必看

    推荐使用C++ 11

    如果你的代码工作正常并且表现良好,你可能会想知道为什么还要使用C++ 11。当然了,使用用最新的技术感觉很好,但是事实上它是否值得呢? 在我看来,答案毫无疑问是肯定的。 C++ 11可以让你的代码更短、更清晰、和更易于阅读,这可以让你的效率更高。 C++ 11提供了一种方法来检查先决条件并尽早的在可能的时机捕获错误-编译过程中,在你运行代码前。这就是理由9。 这是通过静态断言(static_assert)和类别属性模版实现的。 现在开始掌握C++ 11C++ 11标准中除了上描述的还有更多的改动和新功能,它需要一整本数来描述。不过,我相信它们是值得你花时间去学习的。你将省去以往花在提高效率上的时间。 很多主流的编译器已经开始支持C++ 11的一些标准了。还等什么?开始吧! 推荐: http://www.cnblogs.com/roucheng/p/3456005.html

    1.3K20编辑于 2021-12-24
  • 来自专栏跟我一起学编程

    C++】————C++11

    一、C++11简介 1998年是C++标准委员会成立的第一年,本来计划以后每5年视实际需要更新一次标准,C++国际标准委员会在研究C++ 03的下一个版本的时候,一开始计划是2007年发布,所以最初这个标准叫 结果2010年的时候也没完成,最后在2011年终于完成了C++标准。所以最终定名为C++11。     从C++0x到C++11C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。 相比较而言,C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多,是C++的重点内容。 提供了initializer_list类,此类型用于访问C++初始化列表中的值,该列表是const T类型的元素列表。 六、右值引用和移动语义      传统的C++语法中就有引用的语法,而C++11中新增了的右值引用语法特性,无论左值引用还是右值引用,都是给对象取别名。 1. 什么是左值?什么是左值引用?  

    49410编辑于 2024-08-16
  • C++11 并发编程基础(一):并发、并行与C++多线程

    C++11标准在标准库中为多线程提供了组件,这意味着使用C++编写与平台无关的多线程程序成为可能,而C++程序的可移植性也得到了有力的保证。 另外,并发编程可提高应用的性能,这对对性能锱铢必较的C++程序员来说是值得关注的。 1. 何为并发 并发指的是两个或多个独立的活动在同一时段内发生。 因此,在多线程编程中,我们必须确保每个线程锁访问到的数据是一致的。 C++中的并发与多线程 C++标准并没有提供对多进程并发的原生支持,所以C++的多进程并发要靠其他API——这需要依赖相关平台。 C++11 新标准中引入了几个头文件来支持多线程编程: :包含std::thread类以及std::this_thread命名空间。管理线程的函数和类在 中声明.

    57840编辑于 2023-11-11
  • C++11 并发编程基础(一):并发、并行与C++多线程

    C++11标准在标准库中为多线程提供了组件,这意味着使用C++编写与平台无关的多线程程序成为可能,而C++程序的可移植性也得到了有力的保证。 另外,并发编程可提高应用的性能,这对对性能锱铢必较的C++程序员来说是值得关注的。1. 何为并发并发指的是两个或多个独立的活动在同一时段内发生。 因此,在多线程编程中,我们必须确保每个线程锁访问到的数据是一致的。C++中的并发与多线程C++标准并没有提供对多进程并发的原生支持,所以C++的多进程并发要靠其他API——这需要依赖相关平台。 C++11 标准提供了一个新的线程库,内容包括了管理线程、保护共享数据、线程间的同步操作、低级原子操作等各种类。 C++11 新标准中引入了几个头文件来支持多线程编程:<thread>:包含std::thread类以及std::this_thread命名空间。管理线程的函数和类在 中声明.

    1.2K30编辑于 2023-11-10
领券