C++11新特性小结

C++11(及现代C++风格)和快速迭代式开发 过去的一年我在微软亚洲研究院做输入法,我们的产品叫“英库拼音输入法” (下载Beta版),如果你用过“英库词典”(现已更名为必应词典),应该知道“英库”这个名字(实际上我们的核心开发团队也有很大一部分来源于英库团队的老成员)。整个项目是微软亚洲研究院的自然语言处理组、互联网搜索与挖掘组和我们创新工程中心,以及微软中国Office商务软件部(MODC)多组合作的结果。至于我们的输入法有哪些创新的fe 阅读详情
1 匿名函数lambda
[函数对象参数] (操作符重载函数参数)->返回值类型{函数体}
[]中是全局变量名, 如为=则为可获取所有全局变量(作为副本), 如为&则可获得所有全局变量(作为引用)
()中为传入参数
可与for_each()搭配用更简单的代码遍历容器
for_each(beg, end, fun)其中fun为函数指针, 可以为lambda匿名函数;
匿名函数使得我们不必再为那些局部的小函数绞尽脑汁想函数名了, 一大解放
比如:
struct node {
	int key;
	int save;
};
sort(vec.begin(), vec.end(), [](const node &item1, const node &item2)->bool{return item1.key < item2.key;});
auto cmp = [](const node &item1, const node &item2)->bool{
	return item1.key < item2.key;
};
sort(vec.begin(), vec.end(), cmp);

2 unordered_map unordered_set
类似于hashtable, 很方便的hash表; java中是根据链地址法处理冲突, 不知道C++是如何处理的;(ps: 曾看到过, 任何数据列都可以找到一个完美的hash函数);

3 auto关键字
自动判别类型, 必须初始化, 比如auto ix = 1;就自动推导ix为int类型, 在模板中也有作用;
注意: auto不会影响可执行文件的运行速度, 但在编译时会消耗更多的时间, 编译器需要根据赋值判断其数据类型;

4 decltype关键字
取得已有变量的类型
比如:
decltype(x) y = x;//y的类型与x相同

5 nullptr
因为原本的NULL有二义性, 即是int值0也是空指针, nullptr只能作为空指针

6 序列for循环
类似python里的xx in list
如:
map<string, int> mp{
	{"John", 1},
	{"Mike", 2},
	{"Peter", 3}
};
for (auto person : mp)
	cout << person.first << ':' << person.second << endl;

7 变长参数模板tuple
auto newTuple = make_tuple("John", 2.5, 1, {2, 3, 4});
由此可以更方便地存储组合数据

8 新的初始化方法
int arr[3] {1,2,3};
vector<int> iv{1,2,3};
map<int, string> {{1,"a"}, {2, "b"}, {3, "c"}};
string str{"abc"};
ESP32设备驱动-TM1637-驱动4位7段数码管 TM1637是一款带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成了MCU数字接口、数据锁存、LED高压驱动、键盘扫描等功能。 TM1637使用DIP20/SOP20封装,主要适用于电磁炉、微波炉、小家电的显示驱动。 阅读详情

相关推荐

AI初识—LLM、Ollama、Llama都是些个啥?

LLM指的是大语言模型(Large Language Model),是一种基于深度学习的模型,能够理解和生成自然语言。它通过大量文本数据进行训练,具备了理解上下文、生成连贯文本和回答问题的能力。著名的LLM包括OpenAI的GPT系列和Google的BERT。在AI技术快速发展的背景下,LLM、Ollama和Llama代表了现代自然语言处理的不同方面。LLM为我们提供了强大的语言理解能力,Ollama为模型的部署和管理提供了便利,而Llama则在效率和多样性上不断推进。

小蜗牛的珍贵百宝箱 4629

C++----decltype

匿名类型的 lambda。

w_z_j 265

MT4/MT5数据源接入全攻略:从买服务、自研API到低成本DDE,哪种方案适合你?

本文全面解析MT4/MT5数据源接入的三种主流方案:商业服务、自研API和低成本DDE,详细对比其技术参数、成本结构和适用场景。帮助技术团队根据业务需求选择最优方案,确保外汇交易系统的数据流稳定性和实时性,提升交易体验和业务连续性。

weixin_42568801的博客 172

c++优先队列(最大堆)的基本用法以及排序用法(cmp)

c++的queue中有一种优先队列 他会自动按要求递增或者递减排序 在写一些算法题的时候可以起到很好的辅助作用 今天给大家简单介绍一下这些 优先队列 既然是队列那么先要包含头文件#include , 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队 优先队列也具有普通队列的所有的特性 比如size等等 其本质是用堆实现的 所以又称为最大(小)堆 定义 priority_queue<Type,Container,Functional> 其中: Typ

weixin_44302602的博客 4960

VN1630A硬件配置指南:手把手教你用CanApe搭建XCP标定工程(附ELF文件配置技巧)

本文详细介绍了如何使用VN1630A硬件和CanApe软件搭建XCP标定工程,包括硬件配置、CanApe工程创建、ELF文件处理及XCP协议层配置等关键步骤。特别针对实际项目中常见的错误和细节问题提供解决方案,帮助工程师高效完成ECU参数标定工作。

git9versioner的博客 1156

logisim实验——通过2个半加器实现1-bit全加器,通过4个一位全加器构成4-bit加法器(详解)

一、由异或门和与门所构成的半加器: 二、由两个半加器构成的1-bit全加器: ..

zep 1万+

算法笔记(自用)

C++算法笔记

Ni's blog 2287

WRF后处理:python cartopy绘制土地利用/土地分类图//python绘制WRF下垫面类型(以北极为例)

下垫面类型对于WRF的地表过程十分重要,而在我们研究WRF的地表过程之前,需要对输入的土地利用类型进行一些绘制,以便后续的修改。LU_MODIS21函数定义了绘制的土地类型、标签与对应色标,我们使用时,直接引用LU_MODIS21()即可返回。其实很简单,只要将你拥有的土地类型数据提取出来,将原本函数中的labels和C切片,重新定义色标再绘制即可。在这里,我将以北极地区为例,绘制北极地区的WRF下垫面数据,我使用的MODIS21这类。

weixin_43750300的博客 3859

对于排序以及优先队列回调函数cmp的探究

文章目录对于排序以及优先队列回调函数的探究1. sort的cmp参数sort函数的原型为sort函数cmp参数的使用sort函数cmp的比较规则2. priority_queue的cmp模板参数priority_queue的模板原型priority_queue模板的使用priority_queue中cmp的比较规则priority_queue的练习题 对于排序以及优先队列回调函数的探究 1. sort的cmp参数 sort函数的原型为 template<class _RanIt, class _Pr

BambooWine's Notes 1152

保姆级教程:用Comsol Multiphysics仿真你的第一个SAW滤波器(含压电材料参数设置)

本文提供了一份详细的COMSOL Multiphysics教程,指导读者完成表面声波滤波器(SAW)的压电仿真全流程。从压电材料参数设置、叉指换能器建模到多物理场耦合分析,特别强调了实际应用中容易出错的细节和解决方案,帮助工程师快速掌握SAW滤波器仿真技术。

weixin_42665255的博客 592

AI故障预测系统架构设计:5个核心模块+3种主流架构,收藏这篇就够了

深夜11点,某汽车工厂的生产线突然停机——核心机器人的轴承磨损过度导致卡壳。维修人员连夜抢修,直接损失超过50万元,还延误了客户的交货期。传统的“事后维修”或“定期维护”要么代价高昂,要么防不胜防。AI故障预测系统的出现,让“精准维护”成为可能——它能通过传感器数据提前7-30天预警故障,将停机损失降低80%以上。知道要做故障预测,却不知道怎么搭系统——数据怎么采集?特征怎么提取?模型怎么部署?架构怎么选?本文将解决这些问题:我们会拆解AI故障预测系统的5个核心模块,分析3种主流架构。

AIGC应用创新大全的博客 1019

C++、auto, decltype, constexpr, lambda表达式

简要介绍部分C++11/14新特性,包括auto, decltypr, constexpr, lambda表达式等。

生活就像海洋 1434

ArcGIS Pro 3.4 二次开发 - 知识图谱

本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下操作知识图谱的方法。主要包含两大功能模块:1) 知识图谱数据存储操作,包括建立连接、获取图层、检索要素类与表定义、ID转换等;2) 知识图谱数据模型管理,如获取数据模型属性、标识符信息等。代码示例详细展示了如何使用C#通过QueuedTask异步任务与知识图谱服务交互,包括异常处理、数据转换等常见操作场景。所有示例均采用using语句确保资源释放,并遵循ArcGIS Pro SDK的最佳实践。

Winemonk 763

C++11新特性学习小结

C++11的一些

weixin_66232462的博客 455

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

c++11常用新特性小结

在创建对象时区分() 和 {} c++11提供了大括号语法来创建对象,如 int x{0};,创建一个int型变量且初始化为0。 它有很多好处: 大括号初始化可以表达以前做不到的事,如 std::vector<int> v{1, 2, 3}; 大括号初始化禁止内建类型之间进行隐式窄化类型转换,如int sum{x + y};// not allowed, x and y is do...

guotianqing的博客 466

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《深入理解C++11:C++ 11新特性解析与应用》——2.14 本章小结

2.14 本章小结 在本章中,我们可以看到C++11大大小小共17处改动。这17处改动,主要都是为保持C++的稳定性以及兼容性而增加的。 比如为了兼容C99,C++11引入了4个C99的预定的宏、__func__预定义标识符、_Pragma操作符、变长参数定义,以及宽窄字符连接等概念。这些都是错过了C++98标准,却进入了C99的一些标准,为了最大程度地...

weixin_33887443的博客 115

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【C++】C++11新特性详解:可变参数模板与emplace系列的应用

大家好,我是店小二。在这篇文章中,我们将深入探讨C++11的新特性——可变参数模板和emplace系列的应用。如果在阅读过程中有不清楚的地方或发现任何错误,欢迎随时私信交流探讨。

专注于 C/C++ 后端开发,涵盖基础语法、Linux系统与网络、MySQL数据库、常见算法及项目经验。 3236

C++11 相关小结

文档相关 首先,wiki是最全面的:https://en.wikipedia.org/wiki/C%2B%2B11,这是C++完整的新功能,个人使用的编译器可能不完整支持,可以看这个编译器+版本对C++1X的支持情况:http://en.cppreference.com/w/cpp/compiler_support。 然后,看英文不够快,找一篇看起来比较全的中文总结(不全,还是要看...

Gavinmiaoc的博客 548

深入理解C++11:C++11新特性解析与应用

《深入理解C++11:C++11新特性解析与应用》基本信息作者: Michael Wong IBM XL编译器中国开发团队 丛书名: 原创精品系列出版社:机械工业出版社ISBN:9787111426608上架时间:2013-5-31出版日期:2013 年6月开本:16开页码:1版次:1-1所属分类:计算机 &gt; 软件与程序设计 &gt; C++ &gt; C++ 更多关于 》》》《深入理...

weixin_34008805的博客 1311

【C++】—— c++11新特性之 lambda

c++11新特性之 lambda详解

m0_56069910的博客 1732

【C++】C++11新特性

C++11新特性的介绍:统一的初始化列表({{}初始化、initializer_list);auto自动推导类型、decltype自动推导类型拿来定义变量;智能指针:auto_ptr、unique_ptr、shared_ptr、weak_ptr介绍;STL新容器;右值引用的用法介绍和使用场景;完美转发的介绍和使用场景介绍;lambda表达式介绍;可变参数模板 class Arg ...;包装器怎么使用以及使用场景,bind绑定介绍;新的类功能

lzb_kkk的博客 933

C++11

C++11

2302_80190394的博客 2195

C++11语言特性小结

c++11新语言特性梳理(这里整理算法书上的内容,方便日后复习) 1、类型推导(auto) 这个不用多说,c++11提供了不需要预先知道变量类型时,即可定义变量的方式:auto关键字。其实我认为一般在明确知道变量类型时,不用偷懒还是用确定的变量类型定义即可,一般auto用在不知道变量类型或者是声明迭代器变量时: vector&lt;int&gt; vec; vector&lt;int&gt; ve...

性格如此、 334

C++11 列表初始化与类型声明

C++11 引入的列表初始化和新的类型声明方式,使得 C++ 语言更加强大和易用。花括号 {} 初始化和 initializer_list 提供了统一的初始化方式,简化了对象的创建过程;而 auto、decltype 和 nullptr 则增强了类型推导能力,减少了代码中的冗余和错误。掌握这些新特性,可以显著提高 C++ 编程的效率和代码质量。

wxk2227814847的博客 826

C++单元学习小结之C++11部分新增内容

C++11部分新增内容 这学期不再学习C语言了,转向了C++,开始学习面向对象程序设计,也不再以做简单题目,写程序为主,而是学会理顺思路,探索系统的功能实现,转化为各种问题,最终能够自己编写出一套能够切实可行,实现具体功能的系统构架。 C++11新增了很多内容,如constexpr对象,auto类型说明符(虽然C++98和C语言中就有auto关键字,用于自动存储类别的局部变量声明,但是并不经常使用...

是小光a~ 288

CLion安装mingw并配置以支持c++11多线程编程

自己踩的坑 我事先已经知道clion不自带c++编译器,而我再windows下,肯定要装mingw了 然后自己就轻车熟路的把mingw的c编译器、c++编译器都装好,我以为这时候再把编译环境加到clion配置里面就万事大吉了 然而,啪,打脸开始了 按上面配置好,hello world肯定要跑一下,没问题 测试一下c++11新特性auto,没问题 测试一下thread,包含thread头文件没问题...

一只懒虫的博客 8938
上一篇: 左偏树leftistTree和斜堆skewHeap的分析和实现
下一篇: C++贪吃蛇的简单实现版
coderhuhy
博客等级 码龄12年 24粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值