[C++]c++11部分新特性(不足会更新)

news/2024/4/15 17:33:26

⭐auto
auto可以自己从初始化表达式中判断出变量的数据类型,能够大大简化我们的编程工作。它实际上在编译时对变量进行了类型推导,所以不会对程序的执行效率造成不良影响

auto a; // 错误,auto是通过初始化表达式进行类型推导,假设没有初始化表达式,就无法确定a的类型
auto i = 1;//int
auto d = 1.0;//double
auto str = "Hello World";//string
auto ch = 'A';//char
vector <int> v;
auto ite = v.begin();//iterator
auto p = new foo() // 对自己定义类型进行类型推导

auto可以用于for循环来简化代码
在C++中for循环能够使用类似java的简化的for循环,能够用于遍历数组、容器、string以及由begin和end函数定义的序列(即有Iterator),演示样例代码例如以下:

map<string, int> m{{"a", 1}, {"b", 2}, {"c", 3}};//定义哈希表
for (auto p : m){cout<<p.first<<" : "<<p.second<<endl;//遍历哈希表
}
string str("hello world");
for (auto c : str) {cout << c;//遍历字符串
}

⭐Lambda表达式
lambda表达式类似Javascript中的闭包,它能够用于创建并定义匿名的函数对象,以简化编程工作。Lambda的语法例如以下:
[函数对象參数](操作符重载函数參数)->返回值类型{函数体}

vector<int> iv{5, 4, 3, 2, 1};
int a = 2, b = 1;
for_each(iv.begin(), iv.end(), [b](int &x){cout<<(x + b)<<endl;}); // (1)
for_each(iv.begin(), iv.end(), [=](int &x){x *= (a + b);});     // (2)
for_each(iv.begin(), iv.end(), [=](int &x)->int{return x * (a + b);});// (3)

[]内的參数指的是Lambda表达式能够取得的全局变量。(1)函数中的b就是指函数能够得到在Lambda表达式外的全局变量,假设在[]中传入=的话,即是能够取得全部的外部变量,如(2)和(3)Lambda表达式
()内的參数是每次调用函数时传入的參数。
->后加上的是Lambda表达式返回值的类型。如(3)中返回了一个int类型的变量

⭐long long 类型
扩展精度浮点数,10位有效数字

⭐nullptr 常量
有几种生成空指针的方法:

int *p1 = nullptr; // 等价于int *p1 = 0;
int *p2 = 0;
int *p3 = NULL; // 等价于int *p3 = 0;

在新标准下,建议尽量使用新标准nullptr,nullptr是一种特殊类型的字面值,它可以被转换成任意其它的指针类型,虽然其它的方式也是可以的;

⭐除法的舍入规则
新标准中,一律向0取整(直接切除小数部分)

double a = 12/5;
cout << a << endl;//输出结果为2,删掉了小数部分;

⭐return的高级用法

string make_plural(size_t ctr, const string &word,const string &ending){return (ctr == 1) ? word : word + ending;//如果ctr==1,则返回word,否则返回word+ending
}

http://www.ppmy.cn/news/37997.html

相关文章

解决华为云鲲鹏arm架构运行IoTDB经常自动挂掉

InfluxDB和IotDB介绍与性能对比 Linux MacBook Docker安装IoTDB及使用 解决华为云鲲鹏服务器arm架构运行IoTDB经常自动挂掉 原因: 华为云鲲鹏服务器arm架构运行IoTDB缺少一些lib库 IoTDB有些底层依赖包&#xff0c;机器上的版本太低了&#xff0c;cp一个高版本的就行了 注…

调戏chatGPT(二)下围棋

这次我准备和chatGPT下盘围棋&#xff0c;我先得确认它知道围棋是啥&#xff0c;如果会的话我就不用介绍规则了 t 你会下围棋嘛 作为一名AI助手&#xff0c;我可以模拟下围棋的过程&#xff0c;但是我没有实际的感官&#xff0c;无法看到棋盘和棋子&#xff0c;也无法进行实…

Java SE 基础(5) Java 环境的搭建

Java 虚拟机——JVM JVM &#xff08;Java Virtual Machine &#xff09;&#xff1a;Java虚拟机&#xff0c;简称JVM&#xff0c;是运行所有Java程序的假想计算机&#xff0c;是Java程序的运行环境&#xff0c;是Java 最具吸引力的特性之一。我们编写的Java代码&#xff0c;都…

leetcode39.组合总和

题目链接&#xff1a;leetcode 39 1.题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中…

uniapp国际化配置

1、创建资源文件 创建一个locale文件夹&#xff0c;新增index.js,en.json,zh-hans.json 2.配置locale文件夹中的index.js文件 import Vue from vue import VueI18n from vue-i18n// v8.x import en from ./en.json import zhHans from ./zh-Hans.json import zhHant from .…

AIGC之Stable Diffusion 提示词学徒库

前言 描述&#xff1a;本文主要用来记录 提示词TAG 一、提示词 1、提升画面品质的提示词 masterpiece 杰作best quality 最佳品质ultra highers 超高分辨率8k resolution 8k分辨率realistic 逼真ultra detailed 超细致sharp focus 清晰聚焦RAW photo RAW 照片 大概的权重比…

剪格子

[蓝桥杯 2013 省 A] 剪格子 题目描述 如图 111 所示&#xff0c;333\times 333 的格子中填写了一些整数。 我们沿着图中的红色线剪开&#xff0c;得到两个部分&#xff0c;每个部分的数字和都是 606060。 本题的要求就是请你编程判定&#xff1a;对给定的 mnm\times nmn 的格…

Python学习总结

Python是一门十分流行的编程语言&#xff0c;由于其简单易学、语法清晰、应用广泛等特点&#xff0c;吸引了越来越多的人学习和使用。这是对Python学习中进行总结。 1.基础语法 在Python学习的中&#xff0c;主要学习了Python的基础语法&#xff0c;包括变量、运算符、条件语…

精选简历模板

1.应届生通用简历模板&#xff08;.docx) 适用于应届生找工作的学生群体 https://download.csdn.net/download/weixin_43042683/87652099https://download.csdn.net/download/weixin_43042683/87652099 部分缩略图如下&#xff1a; 2.研究生通用简历模板&#xff08;.docx)…

GIS 粒计算定义的几种方式(骆老师,吴老师专用)

摘要: 要想写出无懈可击的定义, 就需要使用集合、元组、序列等术语. 1. 区域 在二维平面中, 区域可定义如下: 定义 1 (连通区域, Area): 二维平面中的连通区域为 A⊆R2,\mathbf{A} \subseteq \mathbb{R}^2,A⊆R2, 其中 ∀(x1,y1),(x2,y2)∈A\forall (x_1, y_1), (x_2, y_2) \…

LeetCode.每日一题 831. 隐藏个人信息

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

【Yapi】Yapi最新版详细安装步骤图文教程,避免踩坑

1. 安装 node.js 安装node.js&#xff0c;选择版本node-v12.16.1-x64.msi 一直点击下一步就好&#xff0c;路径默认C盘就好&#xff0c;不需要做修改。 2. 安装MongDB 下载mongodb-win32-x86_64-2012plus-4.2.3-signed.msi&#xff0c;安装 选择complete完整的安装模式&…

Windows安装Anaconda使用教程

主要介绍在 windows 11 系统中安装 Anaconda3 的详细过程 下载 Anaconda 官网下载地址&#xff1a;https://www.anaconda.com/products/distribution 目前最新版本是 python 3.10&#xff0c;默认下载也是 Python 3.10 安装 安装较为简单&#xff0c;基本都是下一步&#…

基于 Stable Diffusion 一键 AI 作画:什么“小镇做题家”?人人都是艺术家

文章目录前言一、西方艺术简史1.1、古典艺术时期1.2、现代艺术时期1.3、后现代艺术时期二、数字艺术的诞生和发展2.1、数字艺术的诞生2.2、数字艺术下的行业细分2.3、数字作品的创作过程2.4、AI 作画诞生三、Stable Diffusion 文字生成图像3.1、实验环境准备3.2、什么是 Stable…

Andriod ART虚拟机 启动和初始化

前言 之前整理了一系列Dalvik虚拟机的关于堆内存和GC的文章&#xff0c;轮到对ART内存进行分析优化了&#xff0c;继续整理输出一波&#xff0c;本篇为ART虚拟机系列的第一篇&#xff0c;介绍ART虚拟机的启动和初始化。 本ART系列基于7.0代码分析。 ART启动 app_main启动 f…

【新2023Q2押题JAVA】华为OD机试 - 最长合法表达式

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:最长合法表达式 题目 提取字…

Redis第十讲 Redis之Hash数据结构Dict-rehash扩容操作

Rehash 执行过程 字典的 rehash 操作实际上就是执行以下任务: 创建一个比 ht[0]->table 更大的 ht[1]->table ;将 ht[0]->table 中的所有键值对迁移到 ht[1]->table ;将原有 ht[0] 的数据清空,并将 ht[1] 替换为新的 ht[0] ; 经过以上步骤之后, 程序就在不改…

第十二届蓝桥杯省赛第二场 C/C++ B组 编程题与详解

文章目录 一、特殊年份 1、1 题目描述 1、2 题解关键思路与解答 二、小平方 2、1 题目描述 2、2 题解关键思路与解答 三、完全平方数 3、1 题目描述 3、2 题解关键思路与解答 四、负载均衡 4、1 题目描述 4、2 题解关键思路与解答 五、国际象棋 5、1 题目描述 5、2 题解关键思路…

scala匿名函数

我们在使用scala的时候经常会碰到>写法 官方文档给出的解释是&#xff1a;>箭头左边的元组是参数列表&#xff0c;右侧的表达式的值是返回的值 同时>在scala中代表匿名函数&#xff0c;表示创建了一个函数实例 所有的函数在scala中都是object 实例形式&#xff1a…

在职阿里6年,一个29岁女软件测试工程师的心声

简单的先说一下&#xff0c;坐标杭州&#xff0c;14届本科毕业&#xff0c;算上年前在阿里巴巴的面试&#xff0c;一共有面试了有6家公司&#xff08;因为不想请假&#xff0c;因此只是每个晚上去其他公司面试&#xff0c;所以面试的公司比较少&#xff09; 其中成功的有4家&am…
最新文章