C++新特性
文章平均质量分 56
吃个橙子吧
热爱生活~
展开
-
std::thread::hardware_concurrency
返回当前系统支持的并发线程数。注意:应该把这个当成提示。static unsigned int hardware_concurrency() noexcept;参数(无)返回值支持的并发线程数。若该值非良定义或不可计算,则返回 0 。#include <iostream>#include <thread> int main() { unsigned int n = std::thread::hardware_concurrency(); st原创 2021-09-14 10:25:10 · 1540 阅读 · 0 评论 -
C++17新特性filename
filename是C++17新特性新增加的一下函数调用了path、directory_iteratorusing namespace std::filesystem;void AutoDeleteFiles(unsigned int days){ std::filesystem::path str(m_path.toStdString()); if (!exists(str)) //必须先检测目录是否存在才能使用文件入口. return; for (auto& it : std原创 2021-09-09 14:10:14 · 712 阅读 · 0 评论 -
C++中的string讲解和新特性
C++中的字符串stringstring的接口比较复杂,除了字符串的操作,还有类似于容器的操作,比如size()、begin()、end()、push_back()注意:字符串和容器完全是两个不同的概念。using string = std::basic_string; // string其实是一个类型别名using string = std::basic_string<char>; // string其实是一个类型别名基于各种原因:在涉及 Unicode、编码转换的时候,尽量原创 2021-08-09 20:00:47 · 770 阅读 · 0 评论 -
C++多线程,另辟蹊径的并发编程方式
以下内容均是从另一个角度来看待多线程编程的方式,并不是用常规的共享变量或者锁来解析多线程编程1、多用const关键字C++多线程编程注意读而不写”就不会有数据竞争,在 C++ 多线程编程里读取 const 变量总是安全的,对类调用 const 成员函数、对容器调用只读算法也总是线程安全的。2、C++4个用于多线程工具实践多线程下要防止多次初始化数据,如果不控制,会导致初始化函数多次运行。call_once()仅调用一次意义:仅调用一次static std::once_flag flag;原创 2021-08-08 17:18:54 · 457 阅读 · 0 评论 -
except:异常的使用
exception:异常的使用为什么要用异常?因为在C++之前都是用错误码来来处理错误,例如下列代码int n = read_data(fd, ...); // 读取数据if (n == 0) { ... // 返回值不太对,适当处理}if (errno == EAGAIN) { ... // 适当处理错误}正常的业务逻辑代码与处理错误代码混合在一起,导致代码变复杂,容易引起新错误。不仅如此,原创 2021-07-29 20:34:16 · 740 阅读 · 0 评论 -
lambda笔记
lambda:函数式编程简单认识:lambda表达式是一个变量,可以根据调用具体代码去初始化以达到泛型编程的目的。表达式:auto func = {};//最简单的初始化,相当于空函数捕获外部变量,不同于普通函数,这是lambda的一个特性int n = 10; // 一个外部变量auto func = [=](int x) // lambda表达式,用“=”值捕获{ cout << x*n << en原创 2021-07-29 09:28:16 · 226 阅读 · 0 评论