C++新特性复习1 版本11

news2024/10/6 14:36:24

参照来自于:

cppreference.com

老实说,我是毕业不久就开始用C++,原因就是VC++,当时用来做界面。还好吧,不是觉得太难,起码对数学底子没有要求,后面偶尔也用用,但是整体还是C居多。现在项目又要用,但是很多语法有点看不懂了,所以复习一下下。

先从11开始吧,

从特性上看:指针方面unique_ptr,shared_ptr,weak_ptr。条件语句  for − range-for。初始化initializer_list。容器的新特性:vector − deque − array  list − forward_list unordered_map unordered_multimap unordered_set unordered_multiset。

新的工具库:Metaprogramming library。工具库Function objects − hash,Swap − Type operations,pair − tuple。数学库:Floating-point environment。正则表达式库Regular expressions library。最后是并发库Concurrency support library。

一个个简单看看吧。

一 特性

1 auto类型

这个很嗲啊。。。明天一定要试试!

auto x = 10;  // x is int
auto y = 1.5; // y is double

2 range-for

就是简化了的for,还行吧。虽然python这些特性早就烂大街了。

std::vector<int> v = {1, 2, 3, 4};
for (int i : v) {
  std::cout << i << ' ';
}

3 lambda

这个确实不爱用。。。

4 智能指针

大概看了下,就是只用管分配内存就行了,释放内存可以自动搞。

分配的时候使用auto uniquePtr = std::make_unique<int[]>(5);类似这样的写法。空了还是多练练吧。。。

std::unique_ptr<int> p1(new int(10));
std::shared_ptr<int> p2 = std::make_shared<int>(20);

5 编译时期断言

还行吧,这个有的话也行。。。

std::unique_ptr<int> p1(new int(10));
std::shared_ptr<int> p2 = std::make_shared<int>(20);

6 新的null,nullptr。这个其实简单,照着用就行了。

int* p = nullptr;

7 强枚举。

解决枚举冲突,还行吧。

enum class Color { Red, Green, Blue };
Color c = Color::Red;

8 常量表达式,constexpr

好像有用,有好像没用。。

constexpr int square(int x) { return x * x; }
int y = square(5); // y 在编译期被计算为 25

9 长长整形long long int

64位整形数

long long int largeNumber = 10000000000LL;

10 initializer_list

用花括号初始化。好像也是python玩烂了的。。。

std::vector<int> vec = {1, 2, 3, 4, 5};  // 使用 initializer_list 初始化 vector

二 库

1 标准线程库 (Thread library)

void threadFunction() {
  std::cout << "Hello from thread!\n";
}

std::thread t(threadFunction);
t.join();

2 随机数库

还行吧,一般用C的也不是不行。。。

std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
std::cout << dis(gen); // 随机输出 1 到 6 之间的整数

3 正则表达式库

std::regex re("\\d+");
std::smatch match;
if (std::regex_search("123", match, re)) {
  std::cout << "Match found: " << match.str() << '\n';
}

4 新容器

std::array<int, 3> arr = {1, 2, 3};
std::unordered_map<std::string, int> map = {{"one", 1}, {"two", 2}};

5 时间库

auto start = std::chrono::high_resolution_clock::now();
// 执行某些操作
auto end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> duration = end - start;
std::cout << "Operation took " << duration.count() << " seconds.\n";

6 其他

比如一些算法

std::vector<int> vec = {1, 2, 3, 4, 5};
bool allPositive = std::all_of(vec.begin(), vec.end(), [](int i){ return i > 0; });

感觉就是auto类型和智能指针可以多用用。其它的知道就行了,要用的时候再学也来得及。

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

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

相关文章

msvcr120.dll是干嘛的,找不到msvcr120.dll无法执行如何解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcr120.dll丢失”。那么&#xff0c;msvcr120.dll到底是什么&#xff1f;它为什么会丢失&#xff1f;丢失后会对电脑产生什么影响&#xff1f;如何解决这个问题&#xff1f;本文将为您详…

纷享销客PaaS平台基础能力:一文说清 “业务定制能力”

01、业务对象定制能力 一个优秀的PaaS(平台即服务)平台的业务对象定制能力应该具备以下特点&#xff1a; 敏捷的业务模型&#xff1a; 能够根据用户的业务需求&#xff0c;提供可定制的数据模型和数据处理能力&#xff0c;支持各种数据类型和数据操作。 可视化的界面定制能力…

长短期记忆神经网络(LSTM)的回归预测(免费完整源代码)【MATLAB】

LSTM&#xff08;Long Short-Term Memory&#xff0c;长短期记忆网络&#xff09;是一种特殊类型的递归神经网络&#xff08;RNN&#xff09;&#xff0c;专门用于处理和预测基于时间序列的数据。与传统RNN相比&#xff0c;LSTM在处理长期依赖问题时具有显著优势。 LSTM的基本…

聊聊DoIP吧(三)-端口号port

DoIP在UDP和TCP建立连接和发送诊断报文的过程中使用的端口定义如下&#xff1a;

springboot宠物领养系统-计算机毕业设计源码07863

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

Linux C语言:字符串处理函数

一、字符串函数 1、C库中实现了很多字符串处理函数 #include <string.h> ① 求字符串长度的函数strlen② 字符串拷贝函数strcpy③ 字符串连接函数strcat④ 字符串比较函数strcmp 2、字符串长度函数strlen 格式&#xff1a;strlen(字符数组)功能&#xff1a;计算字符串…

LLM中表格处理与多模态表格理解

文档处理中不可避免的遇到表格&#xff0c;关于表格的处理问题&#xff0c;整理如下&#xff0c;供各位参考。 问题描述 RAG中&#xff0c;对上传文档完成版式处理后进行切片&#xff0c;切片前如果识别文档元素是表格&#xff0c;那么则需要对表格进行处理。一般而言&#x…

【UML用户指南】-17-对基本行为建模-交互

目录 1、消息的可视化表示 2、对象与角色 3、链和连接件 4、消息 5、序列 6、创建、修改和撤销 7、表示法 8、常用建模技术 8.1、对控制流建模 8.1.1、基于时间的控制流 8.1.2、基于结构的控制流 在任何有意义的系统中&#xff0c;对象都不是孤立存在的&#xff0c;…

SQL优化选对执行计划,查询速度提升1000倍 | OceanBase 应用实践

作者&#xff1a;爱可生数据库高级工程师任仲禹&#xff0c;擅长故障分析和性能优化。 本文通过一个案例&#xff0c;分享使用OceanBase时&#xff0c;SQL走错执行计划&#xff0c;而导致慢SQL的排查方法论。 案例背景 在使用OceanBase 3.2.3 版本的过程中&#xff0c;项目组反…

Spring的SmartLifecycle可以没用过,但没听过就不好了! - 第517篇

历史文章&#xff08;文章累计500&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

HTML基础结构入门

HTML&#xff08;超文本标记语言&#xff09;是构建网页的基础语言。它用于描述网页的结构和内容。让我们从最基本的HTML文档开始。 HTML基础结构 一个基本的HTML文档结构如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta …

PMP证书有何用?

PMP证书有何用&#xff1f; PMP项目管理专业人士资格认证证书对从事或希望从事项目管理工作的人员有重要意义&#xff0c;具体体现在以下几个方面&#xff1a; 1. 提供职业机会&#xff1a; PMP是项目管理领域的国际认可标准&#xff0c;拥有该证书的人在求职时具备了更强的…

python-docx-template 的 Replace docx pictures 占位图片名称从哪来?

python-docx-template 的 Replace docx pictures 占位图片名称从哪来&#xff1f; 在 Word 中看占位图片名称用代码输出输出结果找对应图片 使用 replace_pic参考资料 在 Word 中看占位图片名称 右键图片 》查看可选文字 用代码输出 from docxtpl import DocxTemplate# 初始化…

【proteus仿真】基于51单片机的电压检测系统

【proteus仿真】基于51单片机的电压检测系统 资料下载地址&#xff1a;关注公众号 小邵爱电子 获取 1.前言 使用51单片机和ADC模块设计一个数字电压表&#xff0c;将模拟信号0~5V之间的电压转换为数字量信号&#xff0c;并通过LED实时显示电压数据 、 2.仿真原理图 3.硬件…

python安装目录文件说明----Dlls文件夹

在Python的安装目录下&#xff0c;通常会有一个DLLs文件夹&#xff0c;它是Python标准库的一部分。这个文件夹包含了一些动态链接库&#xff08;Dynamic Link Libraries&#xff0c;DLL&#xff09;&#xff0c;这些库提供了Python解释器和标准库的一些关键功能。以下是对这个文…

Linux(Centos7)OpenSSH漏洞修复,升级最新openssh-9.7p1

OpenSSH更新 一、OpenSSH漏洞二、安装zlib三、安装OpenSSL四、安装OpenSSH 一、OpenSSH漏洞 服务器被扫描出了漏洞需要修复&#xff0c;准备升级为最新openssh服务 1. 使用ssh -v查看本机ssh服务版本号 ssh -V虚拟机为OpenSSH7.4p1&#xff0c;现在准备升级为OpenSSH9.7p1…

Windows 与 Java 环境下的 Redis 利用分析

1 前言 在最近的一次攻防演练中&#xff0c;遇到了两个未授权访问的 Redis 实例。起初以为可以直接利用&#xff0c;但后来发现竟然是Windows Java (Tomcat)。因为网上没有看到相关的利用文章&#xff0c;所以在经过摸索&#xff0c;成功解决之后决定简单写一写。 本文介绍了…

洗地机性价比高的是哪一款?行内人告诉你

在浏览前&#xff0c;希望您轻触屏幕上方的“关注”按钮&#xff0c;让我后续为您带来更多实用且精彩的内容&#xff0c;感谢您的支持&#xff01; 洗地机作为现在的流行清洁工具&#xff0c;它的魅力之处在于&#xff1a;性价比极高&#xff0c;大多数家庭无需花费过多就能把…

java的Filter(过滤器),Interceptor(拦截器) 和 Aspect(切面)

文章目录 前言一、过滤器 (Filter) 基本用法二、拦截器 (Interceptor) 基本用法三、Aspect(切面)的基本用法总结 前言 Filter 是servlet层面的&#xff0c;由Servlet容器(如Tomcat)支持&#xff0c;只能在web程序中使用&#xff0c;实现了javax.servlet.Filter接口 Intercept…

2024北京智源大会

北京智源大会是年度国际性人工智能高端学术交流的盛会&#xff0c;定位于内行的AI盛会。智源大会紧密围绕当前人工智能学术领域迫切需要解决的问题&#xff0c;以及产业落地过程中存在的诸多挑战&#xff0c;开展深入探讨。智源研究院是2018年11月份成立的一家人工智能领域的新…