ModernC++(一)C++11

news2024/11/18 9:40:54

都在说Modern C++和C++不是一个东西,到底MordenC++好在哪里,学了才有发言权。

why Morden C++

C++ 98的目标:

  • 支持面向对象编程,支持泛型编程
  • 支持数据抽象
    C++ 11的目标:
  • 使得C++成为更好的适用于系统开发以及库开发的语言
  • 使得C++语法一致,易于教学
  • 向前兼容C++98/03

C++11从很早就开始准备,原本代号C++0x,一直到11年才完成,也就改名了C++11
理解了定位再去看具体得特性调整,才会更能体会到用法和必要性。

C++11的具体思路:

  • 通过内存模型、线程、原子操作等来支持本地并行编程(NativeConcurrency)。
  • 通过统一初始化表达式、auto、declytype、移动语义等来统一对泛型编程的支持。
  • 通过constexpr、POD(概念)等更好地支持系统编程。
  • 通过内联命名空间、继承构造函数和右值引用等,以更好地支持库的构建。

C++11设计理念

  • 保持语言的稳定性和兼容性(Maintain stability and compatibility)。
  • 更倾向于使用库而不是扩展语言来实现特性(Prefer libraries to languageextensions)。
  • 更倾向于通用的而不是特殊的手段来实现特性(Prefer generality tospecialization)。
  • 专家新手一概支持(Support both experts and novices)。
  • 增强类型的安全性(Increase type safety)。
  • 增强代码执行性能和操作硬件的能力(Improve performance and abilityto work directly with hardware)。
  • 开发能够改变人们思维方式的特性(Make only changes that change theway people think)。
  • 融入编程现实(Fit into the real world)。

编译器支持情况:

gcc从4.3开始支持C++11,clang从2.8开始支持C++11

总的来说,灵活的静态类型、小的抽象概念、绝佳的时间与空间运行性能,以及与硬件紧密结合工作的能力都是C++11突出的亮点。

what Morden C++

对于C++98/03的改进,这些改进可以分为语言特性改进和库特性改进。

语言特性

在这里插入图片描述
在这里插入图片描述

图片来自《深入理解C++11:C++11新特性解析与应用》

库特性

  • 算法增强Algorithm improvements
  • 容器增强Container improvements
  • 分配算符Scoped allocators
  • std::array
  • std::forward_list
  • 无序容器Unordered containers
  • sts::tuple
  • 类型特性Type traits
  • std::function, std::bind
  • unique_ptr
  • shared_ptr
  • weak_ptr
  • 线程Threads
  • 互斥Mutex
  • 锁Locks
  • 条件变量Condition variables
  • 时间工具Time utilities
  • std::future, std::promises
  • std::async
  • 随机数Random numbers
  • 正则表达式regex

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1699952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宁夏银川、山东济南、中国最厉害的改名大师的老师颜廷利教授的前沿思想观点

在当代社会,一个响亮的声音穿越了传统的迷雾,它来自东方哲学的殿堂,由一位现代学者颜廷利教授所发出。他的话语,如同一股清泉,在混沌的世界里激荡着思考的波澜:"有‘智’不在年高,无‘智’…

第五节: 带你全面理解 vue3 中 computed, watch, watchEffect 组合式API的使用

前言: 上一章, 带大家分析了vue3核心响应式API中的三个, 即reactive,ref, readonly. 本章将会带大家分另外几个工作中比较常用的组合式API. 1. computed 计算属性 在vue2中, 我们是通过computed选项添加计算属性的, 关于计算属性的本质, 这里就不过多阐述了, 如果还有不了…

C++:函数模版简介

如果我们想要实现一个通用的交换函数,在C语言中,我们大概要定义无数个参数不同的交换函数,并且它们的函数名需要各不相同,相信这样的调用便会非常困难,想要调哪个函数还要记得对应的函数名。在C中,有了重载…

Aya 23 是 Cohere For AI 推出的一款最先进的新型多语言开放重量模型

相信一些对LLM关注较高的同学们,应该对这家加拿大的Cohere不会太陌生。毕竟此前,它就开源过 Aya 101 和 Command R 这两款大模型。 Cohere 的非营利性研究实验室 Cohere for AI 发布了 Aya 23,这是其多语言大型语言模型 (llm&…

如何使用Rust构建Python原生库?注意,不是动态链接库!!!

参考文档:https://github.com/PyO3/pyo3 创建python虚拟环境: conda create --name pyo3 python3.11.7激活虚拟环境: conda activate pyo3安装依赖: pip install maturin初始化项目: maturin init构建项目&#x…

企业如何做好 SQL 质量管理?

研发人员写 SQL 操作数据库想必一定是一类基础且常见的工作内容。如何避免 “问题” SQL 流转到生产环境,保证数据质量?这值得被研发/DBA/运维所重视。 什么是 SQL 问题? 对于研发人员来说,在日常工作中,大部分都需要…

全国首例!云南破获域名黑产大案,抓获630人

2021年5月以来,在公安部的组织指挥下,云南公安机关历时8个多月,成功破获全国首例域名黑产犯罪案件,经全国各地公安机关连续奋战,共侦破案件300起,抓获涉案人员630人,查封用于黄、赌、诈等违法网…

K8S认证|CKA题库+答案| 16. 升级集群

目录 16、升级集群 CKA v1.29.0模拟系统 下载试用 题目: 开始操作: 1)、切换集群 2)、 隔离节点 ​3)、登录提权 ​4)、解锁版本 ​5)、查看版本 6)、升级版本 7)、其他…

字符函数和字符串函数(1)<C语言>

前言 在C语言编写程序时&#xff0c;常常需要完成对字符和字符串的处理&#xff0c;为了快捷、方便处理字符和字符串&#xff0c;C语言内置了一些字符函数和字符串函数&#xff0c;所以下文将要介绍一些字符和字符串函数&#xff0c;如&#xff1a;头文件<ctype.h>包含的…

将list对象里的某一个属性取出组成一个新的list

使用Java8将对象里的某一个属性取出组成一个新的list List<Spgg1> listnew ArrayList<>();Spgg1 spgg1new Spgg1();spgg1.setSpdm("测试");spgg1.setGgdm("001");list.add(spgg1);Spgg1 spgg2new Spgg1();spgg2.setSpdm("测试2");sp…

华为Ascend芯片显卡docker环境搭建并完成YOLO8推理

目前随着AI应用的爆发式增长&#xff0c;支持AI模型训练的显卡硬件也变得炙手可热。目前&#xff0c;由于xx颁布了芯片销售禁令&#xff0c;随着而来的是&#xff0c;在国内高端的英伟达显卡买不到了&#xff0c;中低端的显卡价格也水涨船高。在此环境下&#xff0c;华为技术有…

YAML详情

一、kubernetes支持对象 Kubernetes支持YAML和JSON格式管理资源对象 JSON格式&#xff1a;主要用于api接口之间消息的传递YAML格式&#xff1a;用于配置和管理&#xff0c;YAML是一种简洁的非标记性语言&#xff0c;内容格式人性化&#xff0c;较易读 二、YAML语法格式注意点 …

起保停电路工作原理

一、电路组成 起保停电路由电源保护设备&#xff08;空气开关&#xff09;、交流接触器、启动按钮、停止按钮和用电设备组成。 起保停电路的组成部分通常可分为四个部分&#xff1a; 保护部分&#xff1a;&#xff08;空气开关&#xff09;在电流或电压超出一定范围时自动切断…

web学习笔记(五十八)

目录 1. v-model 双向数据绑定 2. 事件修饰符 3. 路径别名 4. setup语法糖 4.1 语法糖的概念 4.2 setup语法糖 5. 配置代理服务器 1. v-model 双向数据绑定 v-model 双向数据绑定只能使用在表单标签&#xff1b; v-model双向数据绑定原理&#xff1a;采用 Object.de…

Unity3D让BoxCollider根据子物体生成自适应大小

系列文章目录 unity工具 文章目录 系列文章目录unity工具 &#x1f449;前言&#x1f449;一、编辑器添加&#x1f449;二、代码动态添加的方法(第一种)&#x1f449;三、代码动态添加的方法(第二种)&#x1f449;四、重新设置模型的中心点&#x1f449;壁纸分享&#x1f449;…

打卡信奥刷题(21)用Scratch图形化工具信奥P7071 [CSP-J2020] 优秀的拆分

使用2进制进行拆分是比较好的解决方案&#xff0c;毕竟对于大家来说二进制转换是非常熟的&#xff0c;如果不会可以参考打卡信奥刷题&#xff08;19&#xff09;用Scratch图形化工具信奥B3972 [语言月赛 202405] 二进制 题解 &#xff0c;输出的时候再转换一下输出&#xff0c;…

【剑指offer】2.2编程语言(p22-p25)——面试题1:string赋值运算函数

本节博客是对阅读剑指offer后的笔记归纳总结&#xff0c;有需要借鉴即可。 目录 1.p21-p25内容概要2.询问语法概念常考&#xff1a;CPP关键字理解举例&#xff1a;sizeof空类 3.分析代码举例&#xff1a;类中拷贝构造的无限递归问题 4.写代码常考点&#xff1a;类内成员函数、迭…

封装了一个iOS水平方向瀑布流布局

首先查看效果图 是支持多分区的 思路就是和竖直方向上的瀑布流布局是一样的&#xff0c; 只不过这里记录的列是水平方向的&#xff0c;同时要记录下 当前最小的x 所在的列&#xff0c;其实原理和竖直方向上的是相同的 &#xff0c;下面贴出代码 父类layout中的代码 // // …

MacOS使用PhpStorm+Xdebug断点调式

基本环境&#xff1a; MacOS m1 PhpStorm 2024.1 PHP7.4.33 Xdebug v3.1.6 1、php.ini 配置 [xdebug] zend_extension "/opt/homebrew/Cellar/php7.4/7.4.33_6/pecl/20190902/xdebug.so" xdebug.idekey "PHPSTORM" xdebug.c…

Java开发大厂面试第26讲:生产环境如何排查问题和优化 JVM?

通过前面几个课时的学习&#xff0c;相信你对 JVM 的理论及实践等相关知识有了一个大体的印象。而本课时将重点讲解 JVM 的排查与优化&#xff0c;这样就会对 JVM 的知识点有一个完整的认识&#xff0c;从而可以更好地应用于实际工作或者面试了。 我们本课时的面试题是&#x…