当前位置: 首页 > news >正文

详细了解C++11(1)

大家好呀,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流哦
本文由:残念ing原创CSDN首发,如需要转载请通知
个人主页:残念ing-CSDN博客,欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:残念ing 的C++进阶系列专栏——CSDN博客
请添加图片描述

目标:
1. 认识C++11
2. 关于C++11的统一的列表初始化
3. 声明
4. 范围for循环
5. STL中的容器的变化

目录

  • 1 C++11的简介
  • 统一的列表初始化
    • 2.1{ }初始化
  • 2.2std::initializer_list<class K>的使用
  • 3声明
    • 3.1 auto
    • 3.2 decltype
    • 3.3 nullptr
  • 4 范围for循环
  • 5 STL中的容器的变化
    • 5.1 新容器
    • 5.2 新(接口)方法

1 C++11的简介

在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了
C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞
进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。
从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于
C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中
约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。相比较而言,
C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更
强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多,所以我们要作为一个
重点去学习。C++11增加的语法特性非常篇幅非常多,我们这里没办法一 一讲解,所以本节课程
主要讲解实际中比较实用的语法
在这里插入图片描述

统一的列表初始化

2.1{ }初始化

一切都可以用列表初始化 ,且可以不加等号

在这里插入图片描述
创建对象时也可以使用列表初始化方式调用构造函数初始化
在这里插入图片描述

2.2std::initializer_list的使用

原理:在栈上开一个数组,然后将值拷贝过去
std::initializer_list一般是作为构造函数的参数,C++11对STL中的不少容器就增加

int main()
{vector<int> v = { 1,2,3,4 };list<int> lt = { 1,2 };// 这里{"sort", "排序"}会先初始化构造一个pair对象map<string, string> dict = { {"sort", "排序"}, {"insert", "插入"} };// 使用大括号对容器赋值v = {10, 20, 30};return 0;
}

3声明

C++11提供了多种简化声明的方式,尤其是在使用模版时。

3.1 auto

在C++98中auto是一个存储类型的说明符,表明变量是局部自动存储类型,但是局部域中定义局部的变量默认就是自动存储类型,所以auto就没什么价值了。C++11中废弃auto原来的用法,将其用于实现自动类型推断。这样要求必须进行显示初始化,让编译器将定义对象的类型设置为初始化值的类型。

int main()
{int i = 10;auto p = &i;auto pf = strcpy;cout << typeid(p).name() << endl;cout << typeid(pf).name() << endl;map<string, string> dict = { {"sort", "排序"}, {"insert", "插入"} };//map<string, string>::iterator it = dict.begin();auto it = dict.begin();return 0;
}

3.2 decltype

作用:将变量的类型声明为表达式指定的类型

在这里插入图片描述

3.3 nullptr

由于C++中NULL被定义成字面量0,这样就可能回带来一些问题,因为0既能指针常量,又能表示
整形常量。所以出于清晰和安全的角度考虑,C++11中新增了nullptr,用于表示空指针。
在这里插入图片描述

4 范围for循环

底层的本质是迭代器,支持的类型很多

5 STL中的容器的变化

5.1 新容器

在这里插入图片描述

5.2 新(接口)方法

如果我们再细细去看会发现基本每个容器中都增加了一些C++11的方法,但是其实很多都是用得比较少的。
比如提供了cbegin和cend方法返回const迭代器等等,但是实际意义不大,因为begin和end也是可以返回const迭代器的,这些都是属于锦上添花的操作。
在这里插入图片描述

相关文章:

详细了解C++11(1)

大家好呀&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流哦 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#xff0c;欢迎各…...

ITA的去锅盖处理流程

一、说明 锅盖是什么 锅盖的类型有哪些 二、去锅盖处理流程 去锅盖算法首先需要采集一份锅盖模板数据,该模板数据用户可以自定义保存,方便后面的开机重启直接导入使用。去锅盖处理包含两个历程:保存锅盖模板;去锅盖处理。 保存锅盖模板: ( 1 ) 打开采集锅盖模板开关。…...

日志管理系统的系统目标是什么?

在网络安全、数据管理、故障排查等领域&#xff0c;日志都被广泛使用并需要进行有效的管理与分析。因此&#xff0c;日志管理系统的系统目标显得尤为重要&#xff0c;如以下几方面。 1、确保数据的安全性及完整性 在企业和组织的日常运营中&#xff0c;各类信息数据都会通过系统…...

uniapp 底部导航栏tabBar设置后不显示的问题——已解决

uniapp 底部导航栏tabBar设置后不显示的问题——已解决 网上找了一堆解决办法&#xff0c;挨个对着试吧 解决办法一&#xff1a;tabBar里的list第一项和page中的第一项要相同&#xff0c;确实就能显示了。但是问题来了&#xff0c;page中的第一项是入口页&#xff0c;那就意味…...

JVM 类加载器

字节码的结构 魔数u4 cafe babe 版本u4 52 java8 常量池计数器u2 从1开始&#xff0c;0索引留给不需要的情况 常量池 表 #1 -> #计数器-1 类标识符 u2 public final abstrat class annotion interface 之类 类索引u2 名字 父类索引u2 父类名字 接口计数器 u2 接口数…...

《C++长时间运行程序:驯服内存膨胀的“怪兽”》

在 C编程的世界里&#xff0c;当我们编写长时间运行的程序时&#xff0c;内存膨胀问题就像一个隐藏在暗处的“怪兽”&#xff0c;随时可能吞噬我们程序的性能和稳定性。无论是服务器应用程序、大型模拟系统还是其他长时间运行的关键任务软件&#xff0c;有效地处理内存膨胀问题…...

ELK之路第二步——可视化界面Kibana

Kibana 1.安装2.解压3.修改配置4.启动 这部分内容就比较简单了&#xff0c;水一片文章。 1.安装 需要梯子 官网下载链接&#xff1a;https://www.elastic.co/cn/downloads/past-releases/kibana-7-3-0 如果你去官网下载页面&#xff0c;点击下载是404报错&#xff0c;记得切换…...

Nature Medicine病理AI汇总|CONCH:病理图像分析的零样本学习模型·顶刊精析·24-10-30

小罗碎碎念 最近在整理24年发表在Nature Medicine上的病理AI文章&#xff0c;简单列了一个表。 接下来我将按照先后顺序&#xff0c;系统的把这13篇文献分析完。其中底色做了填充的&#xff0c;代表商业公司在本论文中占据了一作或通讯。 本期推文介绍的模型是CONCH&#xff0…...

通过不当变更导致 PostgreSQL 翻车的案例分析与防范

在数据库管理领域&#xff0c;PostgreSQL 凭借其强大的功能和稳定性&#xff0c;赢得了广泛的认可。然而&#xff0c;即便是如此稳健的系统&#xff0c;在不当的变更操作下&#xff0c;也可能遭遇性能下降、数据丢失甚至系统崩溃的风险。本文将通过一个具体案例&#xff0c;分析…...

Windows高级技巧:轻松实现多进程窗口的连接与管理

在Windows操作系统中&#xff0c;管理多个进程窗口可能是一项复杂的任务&#xff0c;特别是在自动化测试或多任务处理时。本文将介绍一种高效的方法&#xff0c;通过Python编程和AirtestIDE工具&#xff0c;实现多进程窗口的便捷连接与管理。同时&#xff0c;将提供具体的代码示…...

洪水淹没制图

原文链接&#xff1a;洪水淹没制图https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247624956&idx2&sn2557e56396eed7568d27baf694dc86fe&chksmfa8da91bcdfa200d307ea12ab9f52394ca6ef0bea3111bd8a873b34c950bcd9441c377f13674&token1392391660&…...

PHP的 CSRF、XSS 攻击和防范

CSRF攻击 CSRF&#xff08;Cross-Site Request Forgery&#xff09;攻击&#xff0c;也称为跨站请求伪造&#xff0c;是一种常见的网络安全威胁。在这种攻击中&#xff0c;攻击者利用已认证的用户身份&#xff0c;在用户不知情的情况下伪造请求&#xff0c;冒充用户的操作向目…...

怎么在线制作活码?二维码活码的简单制作技巧

进入数字化时代&#xff0c;二维码已经成为主要的一种内容分享方式&#xff0c;将内容生成活码二维码&#xff0c;可以方便内容的传输与存储&#xff0c;在日常生活中的很多场景都有二维码的应用。通过生成二维码的方式可以更简单快速的分享内容给其他人&#xff0c;有效提高获…...

Lua中实现异步HTTP请求的方法

Lua&#xff0c;作为一种轻量级的脚本语言&#xff0c;因其简洁和高效&#xff0c;在游戏开发、嵌入式系统以及互联网应用中得到了广泛的应用。本文将介绍如何在Lua中实现异步HTTP请求&#xff0c;并提供相应的代码实现&#xff0c;包括如何通过代理服务器发送请求。 异步HTTP…...

拓展学习-golang的基础语法和常用开发工具

golang的基础语法 golang的基础语法和其他语言大部分都差别不大&#xff0c;如果我们有学习过其他语言&#xff0c;比如JavaScript&#xff0c;php&#xff0c;java&#xff0c;python等&#xff0c;有其他语言的语法基础&#xff0c;那么我们学习golang将更容易上手。那我们直…...

得计算题者得天下!软考系统集成计算题详解!

软考中级系统集成项目管理工程师考试一共有《综合知识》和《案例分析》两门科目&#xff0c;而在这两科中都会涉及到计算题&#xff0c;特别是案例分析中&#xff0c;计算题每次考试都会占到一道大题&#xff0c;共25分&#xff0c;占到了科目总分的1/4&#xff0c;所以对于系统…...

在AdaBoost中每轮训练后,为什么错误分类的样本权重会增大e^2αt倍

在 AdaBoost 的每一轮迭代中&#xff0c;样本 i i i 的权重更新公式为&#xff1a; w t 1 , i w t , i ⋅ exp ⁡ ( − α t y i G t ( x i ) ) Z t w_{t1,i} \frac{w_{t,i} \cdot \exp(-\alpha_t y_i G_t(x_i))}{Z_t} wt1,i​Zt​wt,i​⋅exp(−αt​yi​Gt​(xi​))​ …...

什么是数据中心?

数据中心是一个专门用于容纳大量联网计算机设备的设施&#xff0c;这些设备共同协作&#xff0c;以处理、存储和传输数据。现代社会中&#xff0c;大部分高科技公司都依赖数据中心来提供在线服务&#xff0c;例如网站、应用程序和云服务等。可以说&#xff0c;数据中心是互联网…...

【工具使用】VSCode如何将本地项目关联到远程的仓库 (vscode本地新项目与远程仓库建立链接)

在日常练习的项目中&#xff0c;我每次都在vscdoe编写前台代码&#xff0c;但是对于编写的代码&#xff0c;如何将本地项目关联到远程的仓库&#xff1b;这里做一下记录 文章目录 1、Gitee 新建远程仓库2、将本地的项目和远程仓库进行关联**3、将本地修改的代码推送到远程通过命…...

安全见闻-二进制与网络安全的关系

一、二进制的基本概念 二、二进制在网络安全中的重要性 三、二进制安全的概念与范畴 1. 二进制安全的定义 2. 范畴 四、二进制安全的渗透测试方法 1. 静态分析 2. 动态分析 3. 模糊测试 4. 漏洞利用 5. 代码审计 五、结论 学习视频泷羽sec&#xff1a;安全见闻&…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...