摘要: 1.atomic及部分函数: atomic是c++11推出的原子变量,使用需要C++11及更高标准,包含的头文件为#include 1.1 atomic变量: atomic可以声明基本类型的变量,如下: std::atomic ... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(965) 评论(0) 推荐(0)
摘要: 1.function和bind 这两个函数需要包含头文件#inlude。 std::function是一种封装函数的工具或者说方法。std::function封装包普通函数、Lambda表达式、函数指针、以及其它函数对象等。std::funct... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(173) 评论(0) 推荐(0)
摘要: 1.引入条件变量的原因: 首先我们想象一个场景,果农每秒摘一个苹果,无数的消费者排队等苹果,苹果摘好就拿走。为此场景写一个极简生产者消费者模型如下: #include #include #include #include std::mutex ... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(231) 评论(0) 推荐(0)
摘要: 1.互斥量mutex: 1.1 多线程的问题: 当使用多线程编程时,如果多个线程同时访问同一资源很可能会出现错误,下面程序展示了这点。 #include #include #include #include void func1(int& a)... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(601) 评论(0) 推荐(0)
摘要: 1.std::thread的使用: std::thread是C++11提出的,因此使用std::thread需要c++11或c++11以上标准。在linux使用std::thread时需要在编译时链接-lpthread。 2.使用thread的... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(178) 评论(0) 推荐(0)
摘要: 1.前置知识: 在了解万能引用和完美转发之前需要了解左值,右值,左值引用,右值引用和引用折叠。下面简单概括一下这些名词,关于每个名词的详细解释网上有很多非常好的文章,故不在本文赘述。 1.1 左值和右值: 简单的说可以取地址的就... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(251) 评论(0) 推荐(0)
摘要: 一.什么是类型双关: 维基百科对类型双关的定义是这样:类型双关是计算机科学的术语,指任何编程技术能颠覆或者绕过一门程序设计语言的类型系统,以达成在形式语言内部难以甚至不可能实现的效果。 这个概念可能有些不好理解,其实简单的说它就... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(220) 评论(0) 推荐(0)
摘要: 一.C库函数: 头文件: #include或#include 1.1 char*转int/long: long int strtol(const char *nptr, char **endptr, int base) ... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(354) 评论(0) 推荐(0)
摘要: 官方文档链接: 在 Visual Studio 中创建 CMake Linux 项目 | Microsoft Docs 前置需求: 在远程计算机上安装了gcc/g++,gdb,rsync,zip。同时远程计算机需要支持ssh。 ... 阅读全文
posted @ 2022-05-07 14:40 shldy1999 阅读(926) 评论(1) 推荐(0)