
C++
文章平均质量分 80
地球被支点撬走啦
这个作者很懒,什么都没留下…
展开
-
C++11 thread 在 Windows 系统中无法使用问题解决
C++11 thread类在windows上无法使用。std 没有成员 thread、thread not member of std_Cris6866的博客-优快云博客_std没有成员thread。然后在实际使用时需要将相应的的头文件换成上述显示的头文件的名字,比如原来的。最近在Windows10上使用C++11的 thread 时遇到了。我Windows10上的 C++ 编译器用的时。头文件,这种问题在Linux上就没有出现。,然后我这就正常了,具体的使用方法是一样的。的问题,但是我已经包含了。原创 2022-09-21 11:30:25 · 4378 阅读 · 2 评论 -
C++ vector数组实现多级排序—使用sort()函数
C++ 多级排序可以借用 sort() 函数(在头文件 中)的第三个参数实现。原创 2022-08-27 11:52:05 · 3548 阅读 · 0 评论 -
Linux 串口编程学习记录(termios.h)
目录0、Linux 串口编程简述1、open() / close() 函数open() 函数参数说明:close() 函数参数说明2、termios 结构体3、tcsetattr() / tcgetatt()函数4、tcflush() 函数5、ioctl() 函数6、write()/read() 函数Linux 上 C++ 的串口编程主要 API 都定义在了在头文件 termios.h 中。Linux 串口与单片机串口本质上是一样的,在初始化阶段都是要设置波特率、停止位、奇偶校验位等属性的。C++ Linu原创 2022-07-11 17:50:01 · 7214 阅读 · 0 评论 -
C++ 中cin的输入原理及字符串(string、char[])输入问题
C++中常用的输入方式为 cin 。通过 cin 来获取字符串是常用的操作,但是字符串中往往可能会包含空格等空白字符,而在一般的输入场景中,由于不能通过键盘输入空字符 '\0'(在存储中,字符串都以空字符 '\0' 结尾),因此 cin 使用空白字符(空格、制表符和换行符)来确定字符串的结束位置,因此想要输入空格必须得修改输入的方式。也就是说,这种情况下一次只能完成一个单词的输入,其后的单词都会被忽略掉。getline() / get() 函数都可以接收一行字符串输入,并以回车作为输入的结尾。区别就是原创 2022-06-09 22:11:55 · 24408 阅读 · 2 评论 -
C++ 无序关联容器 unordered_map 以及 unordered_set
之前说过的 map 与 set 在存储上都是有序的,即是按照关键字的值排序的:如果键的类型是数字,则按照数字大小进行排序,如果是 string,则按照字典序进行排序。C++新标准定义了四种无序关联容器(unordered_map、unordered_set、unordered_multimap、unordered_multiset),这些容器不再是使用比较运算符来组织元素,而是使用一个哈希函数和关键字类型的==运算符。在关键字类型的元素没有明显的序关系的情况下,无序容器是非常有用的。在某些应用中,维护元素的原创 2022-06-05 15:45:56 · 488 阅读 · 0 评论 -
C++ 动态内存分配和智能指针 share_ptr/unique_ptr
目录1、动态对象以及new/delete2、智能指针C++除了在代码编译时创建的自动(auto)和静态(static)对象外,还支持运行过程中动态分配对象,动态对象只有显式地被释放时,这些对象才会销毁。C++中使用 new/delete 运算符完成动态内存管理,new在动态空间中为对象分配空间并返回指向该对象的指针,delete接受一个动态对象指针,销毁该对象,并释放与之关联的内存。传递给delete的指针必须指向动态分配的内存,或者是一个空指针,释放一块非new分配的内存,或者将相同的指针释放多次,其行为原创 2022-06-05 14:16:38 · 1236 阅读 · 0 评论 -
进程、线程、协程、并发、并行、IO多路复用
目录一、什么是IO操作二、进程、线程、协程1、进程是资源分配的基本单位2、线程是任务调度的基本单位3、协程—由线程创建并全权负责的小弟三、并行、并发及其与CPU内核数的关系1、理解并行与并发的区别2、进程、线程与CPU核数之间的关系3、同一个进程里的线程可以并行执行吗(满足条件时可以)四、IO多路复用五、参考文(zi)献(liao)我竟然妄想在小小的篇幅下把这四件事讲明白,离谱,但又不太离谱~在多线程、多进程、并行、并发这几个概念中,有很多知识点容易让..原创 2022-05-16 23:00:28 · 1628 阅读 · 0 评论 -
VSCode:ERROR: Unable to start debugging. Unexpected ...... “-exec-run“. During ......code 0xc0000139
笔试前夕遇到这个问题真令人头大。。。(T...T)!先说结论:在系统环境变量 path 设置中,mingw64\bin 中的某个文件与原来安装过的anaconda的环境变量D:\Anaconda\Library\mingw-w64\bin 中的文件冲突了,去掉环境变量 path 中的D:\Anaconda\Library\mingw-w64\bin 就行了。(我是应为 anaconda,还有人是 QT 的原因,详情看文末)全部报错信息如下:ERROR: Unable to start...原创 2022-05-01 00:17:10 · 6188 阅读 · 9 评论 -
C++ 链表(list)使用简述
目录1、有关函数的作用2、测试用例C++ STL 库的 list 容器是一个双向链表。包含在头文件 <list> 中1、有关函数的作用list 本身: list<type> li; 定义一个参数类型为 type 的链表 li.push_back(val) 在尾节点后插入值为 val 的数据,作为新的尾节点 li.push_front(val) 在头节点前插入值为 val 的数据,作为新的头节点 li.size().原创 2022-03-28 11:43:46 · 4000 阅读 · 0 评论 -
C++ 队列(queue、priority_queue)使用简述
目录1、有关函数的作用2、测试用例至于队列的结构与原理(FIFO,先入先出)这里就不细说了,这里主要记录下 C++ 的头文件 <queue> 中有关队列的操作是如何使用的。1、有关函数的作用queue<type> q; 定义一个参数类型为 type 的队列 q.push(val) 元素入队,无返回值 q.front() 返回队首元素,且该元素不出列 q.pop() 队首元素出队,不返回元素,无返回值原创 2022-03-27 22:03:11 · 2959 阅读 · 0 评论 -
C++ 栈(stack)使用简述
目录1、有关函数的作用2、测试用例至于栈的结构与原理(先入后出)这里就不细说了,这里主要记录下 C++ 的头文件 <stack> 有关栈的操作是如何使用的。1、有关函数的作用stack<type> s; 定义一个参数类型为 type 的栈 s.push() 压栈,无返回值 s.emplace() 压栈,无返回值(与push的区别下面细说) s.pop() 栈顶元素出栈,不返回元素,无返回值 s原创 2022-03-17 17:36:58 · 9818 阅读 · 0 评论 -
C++ 模板与泛型编程简述
目录1、什么是模板和泛型编程2、定义及使用模板1、什么是模板和泛型编程什么是模板?什么是泛型编程?模板的概念与泛型编程是相辅相成的。想象一个场景:我们需要比较两个整数或两个字符串的大小,假如你还不知道模板的概念,那大可能会写出两个类似的函数来解决这个问题,就像下面这样:// 对比两个整数的大小int compare_int(int v1, int v2) { if(v1 < v2) return -1; else if(v1 > v2) retu..原创 2022-03-17 16:56:04 · 1170 阅读 · 0 评论 -
C++ 链表构建与基本操作
本文没啥干货,纯属笔记,建议出门左拐哈目录1、创建单向链表2、在链表结尾添加元素3、从链表中删除第一个值为 val 的元素4、测试用例1、创建单向链表单向链表可以使用结构体的形式创建,定义一个名为 ListNode 的结构体如下:struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} // 重载函数,默认值为1 ListNode(in.原创 2022-03-14 22:18:52 · 6334 阅读 · 0 评论 -
C++ 数组(vector)常用操作总结
目录0、vector数组 与 内置数组1、vector对象的定义和初始化方式2、vector 常用操作3、使用迭代器的遍历、插入、删除操作4、vector 元素的重排操作(排序、逆序等)5、vector 数组的内存分配机制0、vector数组 与 内置数组一般来说,我们在使用 C++ 编程时会将 vector 类型的数据与类似于使用 a[N] 定义的内置数组统称为数组,两者是很类似的数据结构,在一般的任务中使用 vector数组 与使用内置数组通常没有什么区别。两者的区别主要原创 2022-03-09 20:23:55 · 159356 阅读 · 5 评论 -
C++ 字符串(string)常用操作总结
目录1、定义一个字符串2、读写 string 操作3、查询字符串信息、索引4、拼接、比较等操作5、cctype 头文件6、for 循环遍历7、修改 string 的操作8、string 搜索操作9、数值转换由单引号括起来的一个字符被称作 char 型字面值,双引号括起来的零个或多个字符则构成字符串型字面值。字符串字面值的类型实际上就是由常量字符构成的数组,,编译器在每一个字符串后面添加一个空字符('\0'),因此字符串的实际长度要比他的内容多1。如字面值 'A'原创 2022-03-08 23:10:21 · 41476 阅读 · 1 评论 -
Windows10 配置 VSCode 的 C++环境
目录0、不同符号代表的 CPU 的位数:1、下载 MinGW64 包,配置C/C++的Windows环境2、在 VSCode 里配置 C++0、不同符号代表的 CPU 的位数:x86:x86代表一种通用的计算机指令集。x86以微软在1978年发布的处理器 8086 及其后一系列型号以 86 结尾的处理器而得名。x86-64 是 x86 的64位拓展,向后兼容16及32位CPU。根据不同公司或不同系统对CPU位数的各种叫法总结如下::x86、i386、i486、i586、i68..原创 2022-03-08 17:54:04 · 2532 阅读 · 0 评论 -
C/C++ 文件操作基础
本文的文件操作是 ANSI C 标准的,在 C/C++ 中都可以使用。1、文件分类从数据的组织形式来说,数据文件可以分为 ASCII 文件和二进制文件。数据在内存(RAM)中是以二进制形式存储的,如果不加处理地输出到外存(ROM)进行文件保存的话,该保存在 ROM 中的文件就是二进制文件。如果要求在 ROM 中以 ASCII 码形式保存的话则需要在存储前进行转换,ASCII 文件又称做文本文件。就比如内存中有一个 float 类型的浮点数 3.14259 ,如果以二进制形式输出至外存进行存储的话原创 2021-09-11 20:29:01 · 1136 阅读 · 1 评论 -
C++ 中 map 字典与 set 集合的使用
在 C++ 中,map 是关联容器的一种,关联容器将值与键关联到一起,并使用键来查找值。这与 python 中的字典类型类似,也是用来存储键-值对(key-value)形式的数据的,其同样具有遍历、插入、查询、删除等功能,下面将一一介绍。1、map 类型的声明若想在 C++ 中使用 map 类型创建字典,则需要包含 map 头文件,如下:#include <map>map 类型的定义如下:map<KeyType, ValueType> dict;其中,K.原创 2021-09-09 09:33:49 · 10805 阅读 · 1 评论