C++ 11新特性之语法甜点1
概述
C++ 11中引入了许多简化编程工作的语法上的新特性,我们暂且美其名曰:“语法甜点”。下面,我们将对这些“语法甜点”一一进行介绍。
语法甜点1:序列for循环
序列for循环是一种简化的for循环,可用于遍历一组序列,包括:各种容器、string、数组、初始化列表以及由begin和end函数定义的序列。
#include <iostream>
#include <vector>
using namespace std;int main()
{vector<int> vctTemp{1, 2, 3};for (auto a : vctTemp){cout << a << endl;}return 0;
}
语法甜点2:成员变量初始化
与Java、C#中的用法一样,可以对成员变量进行就地初始化。
class CPerson
{
private:int m_nAge = 10;string m_strName = "Mike";
};
语法甜点3:统一的初始化语法
在引入C++ 11之前,有各种不同的初始化语法。在C++ 11中,仍可以使用这些初始化语法,但也可以选择使用新引入的统一的初始化语法。统一的初始化语法用一对大括号{}表示,使用{}初始化语法还可有效地避免窄转换。
#include <iostream>
#include <vector>
using namespace std;class CPerson
{
public:int m_nAge = 10;string m_strName = "Mike";
};int main()
{int a{5};char c{'X'};int p[5] = {1, 2, 3, 4, 5};vector<int> vctTemp{1, 2, 3};CPerson person{10, "Mike"};// b赋值成5,发生了窄转换int b = 5.3;// 会提示编译错误,避免了窄转换int d{5.3};return 0;
}
语法甜点4:nullptr
nullptr是C++ 11中新加的一个关键字,用于标识空指针。引入nullptr后,可以解决某些函数重载时的二义性问题。
#include <iostream>
using namespace std;void Test(int a)
{cout << a << endl;
}void Test(char *p)
{cout << p << endl;
}int main()
{int *p = nullptr;int *q = NULL;// 两个指针值是相等的,bEqual为truebool bEqual = (p == q);// 编译失败,nullptr不是转换为intint a = nullptr;// 在C++ 98中编译失败,有二义性;在C++ 11中调用F(int)Test(0);// 调用F(char *)Test(nullptr);return 0;
}
语法甜点5:委托构造函数
在引入C++ 11之前,如果某个类有多个重载的构造函数,且这些构造函数中有一些共同的初始化逻辑,通常都需要再编写一个带参数的初始化函数,然后在这些构造函数中调用这个初始化函数。在C++ 11中,再也不用这么麻烦了。我们可以实现一个最基础的构造函数,其他构造函数都调用这个构造函数。
#include <iostream>
#include <sstream>
using namespace std;class CPerson
{
public:CPerson() : CPerson(0, "") { NULL; }CPerson(int nAge) : CPerson(nAge, "") { NULL; }CPerson(int nAge, const string &strName){stringstream ss;ss << strName << "is " << nAge << "years old.";m_strInfo = ss.str();}private:string m_strInfo;
};int main()
{CPerson person(10, "Mike");return 0;
}
相关文章:
C++ 11新特性之语法甜点1
概述 C 11中引入了许多简化编程工作的语法上的新特性,我们暂且美其名曰:“语法甜点”。下面,我们将对这些“语法甜点”一一进行介绍。 语法甜点1:序列for循环 序列for循环是一种简化的for循环,可用于遍历一组序列&…...
【智能家居】6、语音控制及网络控制代码实现
一、语音控制 1、指令结构体编写 这个结构体定义了一个命令输入的模型。在这个模型中,包含以下几个部分: cmdName:一个长度为128的字符串,用于存储命令名称。dvicesName:一个长度为128的字符串,用于存储设…...
Windows断开映射磁盘提示“此网络连接不存在”,并且该磁盘直在资源管理器中
1、打开注册表编辑器 快捷键winR 打开“运行”, 输入 regedit 2、 删除下列注册表中和无法移除的磁盘相关的选项 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\ 3、打开“任务管理器”,重新启动“Windows资源…...
Java项目要不要部署在Docker里?
部署Java项目有很多种方式,传统的方式是直接在物理机或虚拟机上部署应用,但为什么现在容器化部署变得越来越流行, 个人觉得原因有以下几个: 1、 环境一致性:使用Docker可以确保开发、测试和生产环境的一致性ÿ…...
Linux 入门基础知识(一)—— Linux的基本使用
Linux 入门基础知识 一、Linux的基本使用和配置1.1、终端1.2、消耗内存1.3、运行级别1.6、登录前欢迎语1.5、登录后欢迎语1.6、shell1.7、ps aux1.8、设置主机名1.9、whoami和who am i1.10、命令提示符 二、Linux执行命令的过程详解和命令类型2.1、命令执行2.2、hash缓存表2.3、…...
纯静态微信小程序水果商城
首页代码 <view class"container"><!-- 轮播图 --><view class"swiper-container"><swiper class"screen-swiper" indicator-dots"true" circular"true" autoplay"true" interval"300…...
操作系统-线程的实现方式和多线程模型(用户级线程 内核级线程 多线程模型的情况)和线程的状态,转换,组织,控制
文章目录 线程的实现方式和多线程模型总览线程的实现方式用户级线程内核级线程多线程模型一对一多对一多对多 小结 线程的状态,转换,组织,控制总览 线程的状态与转换线程的组织与控制 线程的实现方式和多线程模型 总览 线程的实现方式 用户级线程 程序自己通过自己设计的线程…...
计算机网络 应用层
文章目录 应用层域名系统 DNS域名系统概述互联网的域名结构域名服务器 文件传送协议FTP 概述FTP 的基本工作原理简单文件传送协议 TFTP 远程终端协议 TELNET万维网 WWW统一资源定位符 URL超文本传送协议 HTTP万维网的信息检索系统 电子邮件电子邮件概述简单邮件传送协议 SMTP邮…...
拥有你的微调大模型,零代码定制+算力免费送
2023年,ChatGPT的横空出世掀起了人工智能领域的新一轮革命。 很快大模型的潮水就越过广袤的太平洋,席卷国内科技圈和投资圈,几乎所有科技公司都在押注大模型。根据工信部赛迪研究院数据,预计2023年我国语言大模型市场规模将达到1…...
《Docker技术革命:从虚拟机到容器化,全面解析Docker的原理与应用-上篇》
文章目录 Docker为什么会出现总结 Docker的思想Docker历史总结 Docker能干嘛虚拟机技术虚拟机技术的缺点 容器化技术Docker和虚拟机技术的区别 Docker概念Docker的基本组成镜像(image)容器(container)仓科(repository)…...
C,C++,C# 的区别
C,C,C# 是三种不同的编程语言。它们有一些共同点,但也有很多区别。 C是一种过程式编程语言,被广泛用于系统级编程和嵌入式开发。它具有简单的语法和较小的标准库,适合于高效的低级编程和处理底层细节。 C是一种面向对…...
操作筛选器的 1 个应用实例:自动启用事务
前言 在数据库操作过程中,有一个概念是绕不开的,那就是事务。 事务能够确保一系列数据库操作要么全部成功提交,要么全部失败回滚,保证数据的一致性和完整性。 在 Asp.Net Core Web API 中,我们可以使用操作筛选器给…...
搭建基于Java的分布式爬虫系统
目录 前言 一、分布式爬虫系统的架构设计 二、系统搭建步骤 1. 创建爬虫项目 2. 导入相关依赖 3. 编写分布式爬虫系统的核心代码 3.1 节点管理器(Node Manager) 3.2 调度器(Scheduler) 3.3 下载器(Downloader…...
rancher证书过期问题处理
问题 起初,打开rancher ui页面打不开,telnet rancher的服务端口也不通。查看rancher 控制节点,日志显示,X509:certificate has expired or is not ye valid。证书已过期 解决 现在网上大部分的解决方案都是针对的2…...
Spring Boot 中文件上传
Spring Boot 中文件上传 一、MultipartFile二、单文件上传案例三、多文件上传案例四、Servlet 规范五、Servlet 规范实现文件上传 上传文件大家用的最多的就是 Apache Commons FileUpload,这个库使用非常广泛。Spring Boot3 版本中已经不能使用了。代替它的是 Sprin…...
2023年06月CCF-GESP编程能力等级认证Python编程一级真题解析
一、单选题(共15题,共30分) 第1题 以下不属于计算机输出设备的有()。 A:麦克风 B:音箱 C:打印机 D:显示器 答案:A 第2题 ChatGPT 是 OpenAI 研发的聊天机器人程序,它能通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你…...
unity 使用数字图片来代替数字0到9显示
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Trackracecomplete : MonoBehaviour { /// /// 数字图片 /// [SerializeField] private Sprite[] sprites; private string _Time “23:57:49”; [Ser…...
单片机如何实现延时1ms或者1us
1us //适配主频为120MHz的单片机 void Delay_us(int16_t nus) {int32_t temp; SysTick->LOAD nus*15; //120MHzSysTick->VAL0X00;SysTick->CTRL0X01;do { tempSysTick->CTRL;}while((temp&0x01)&&(!(temp&(1<<16))));SysTick->CTRL0x0…...
全国网络安全行业职业技能大赛WP
word_sercet 文档被加密 查看图片的属性 在备注可以看到解压密码 解密成功 在选项里面把隐藏的文本显示出来 可以看到ffag easy_encode 得到一个bmp二维码 使用qr research 得到的密文直接放瑞士军刀 base32解码base64解码hex解码 dir_pcap 直接搜索flag 发现flag…...
【Python函数与模块】(7)模块的分类与好处
文章目录 一、模块分类二、模块的好处 一、模块分类 Python标准模块(内置模块,标准库) 第三方模块/库(pypi.org) 自定义模块 二、模块的好处 可维护性更强 方便代码重用...
震惊!原来论文还能这样搞定?2026降AI率平台推荐合集
还在为查重高、AI痕迹明显、格式乱糟糟而抓耳挠腮?2026年论文写作早已迎来新革命,从选题构思到降AIGC率、去AI痕迹、查重优化全流程智能搞定,真正实现高效写作不卡壳,轻松应对毕业论文压力! 一、核心工具 TOP4…...
GitHub星标超50k的开源AI工具,为何大厂仍每年豪掷千万采购商业套件?(20年AI基建老兵深度复盘)
更多请点击: https://intelliparadigm.com 第一章:GitHub星标超50k的开源AI工具,为何大厂仍每年豪掷千万采购商业套件?(20年AI基建老兵深度复盘) 开源AI工具如LangChain、LlamaIndex、Ollama和Hugging Fac…...
5分钟掌握SRWE:Windows窗口分辨率自由调整的终极指南
5分钟掌握SRWE:Windows窗口分辨率自由调整的终极指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾经遇到过这样的烦恼?游戏截图不够清晰,设计软件窗口无法适配特定…...
数据决定上限,准备决定成败:DeepSeek同源训练数据预处理全链路拆解,错过这3个关键阈值=白训2000卡时
更多请点击: https://codechina.net 第一章:数据决定上限,准备决定成败:DeepSeek同源训练数据预处理全链路总览 高质量大模型的基石并非仅在于参数规模或算力堆叠,而深植于训练数据的纯净度、多样性与结构化程度。De…...
创业公司利用Taotoken按Token计费模式精细控制AI研发成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 创业公司利用Taotoken按Token计费模式精细控制AI研发成本 对于创业公司而言,在产品研发的早期阶段,快速进行…...
3分钟快速汉化:HS2-HF_Patch开源工具一键安装、多插件支持、中文游戏体验指南
3分钟快速汉化:HS2-HF_Patch开源工具一键安装、多插件支持、中文游戏体验指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2…...
ChatGPT账号封禁真相大起底(附OpenAI官方政策逐条对照表):92%用户因这4个隐藏操作永久失权
更多请点击: https://codechina.net 第一章:ChatGPT账号被封怎么办 当您的ChatGPT账号突然无法登录、提示“Account suspended”或跳转至封禁通知页面时,这通常意味着OpenAI已依据其《使用条款》对账号采取了限制措施。常见触发原因包括&…...
为你的AI应用配置Taotoken实现自动故障转移与路由
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为你的AI应用配置Taotoken实现自动故障转移与路由 在构建依赖大模型API的应用时,服务的稳定性直接关系到终端用户的体验…...
长期使用Taotoken Token Plan套餐在项目开发中的成本节省体感
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐在项目开发中的成本节省体感 1. 项目背景与成本挑战 我们团队负责一个中型AI应用项目的开发&…...
RAG增强检索在AIGC工作流中的实战:从文档解析到向量召回全流程
系列导读 你现在看到的是《从0到1构建AIGC工作流自动化平台:架构、实践与运维全指南》的第 3/10 篇,当前这篇会重点解决:让读者掌握RAG从理论到代码的完整落地流程,并学会在工作流中优雅复用。 上一篇回顾:第 2 篇《搭建你的第一个AIGC工作流:基于LangChain实现多步链式…...
