摘要: 无序关联容器 #include <unordered_set> #include <unordered_map> 有序关联容器 => 底层是红黑树结构 #include<set> #include<map> set<int> set1 ;//不允许重复 for(int i=0;i<100;i++){ 阅读全文
posted @ 2022-12-15 16:31 Hello_Bugs 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 容器迭代器 Vector vec; for(int i=0;i<100;i++){ vec.push_back(i); } const_iterator 常量迭代器 (基类) iterator 普通迭代器 (子类) iterator 是继承自const_iterator的 class const_i 阅读全文
posted @ 2022-12-15 09:57 Hello_Bugs 阅读(26) 评论(0) 推荐(0) 编辑
摘要: vector和deque之间的区别? vector:底层动态数组,内存连续,二倍方式扩容 vector vec;默认是没有开辟空间的, 0->1->2->4->8->16 可以用reserve(20) 只开辟空间,没有放置元素 deque:动态开辟的二维数组空间,第二维是固定长度的空间,扩容的时候, 阅读全文
posted @ 2022-12-15 09:43 Hello_Bugs 阅读(130) 评论(0) 推荐(0) 编辑
摘要: deque:双端队列容器(队头队尾都可入,出) 底层数据结构情况 动态开辟的二维数组,一维数组从2开始,以2倍方式进行扩容,每次扩容后,原来第二维数组 从新的第一维数组的下标oldsize/2 开始存储 如下列图序 满了扩容,扩容第1维,2倍扩 deque deq; 增加: deq.push_bac 阅读全文
posted @ 2022-12-14 19:30 Hello_Bugs 阅读(103) 评论(0) 推荐(0) 编辑
摘要: STL (standard template libaray - 标准模板库):是 C++ 标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。 通俗来说:STL就是将常见的数据结构(例如 顺序表,链表,栈,队列,二叉树,哈希...)以模板的形式进行封装,使用时, 阅读全文
posted @ 2022-12-14 17:59 Hello_Bugs 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 底层数据结构:动态开辟的数组,每次以原始空间2倍扩容 vector vec; 增加 vec.push_back(100);容器末尾加元素 时间负责度O(1) 可能导致容器扩容 容器中的,对象的构造析构,内存的开辟释放,通过什么来实现? 容器的空间配置器allocator allocate deall 阅读全文
posted @ 2022-12-14 14:14 Hello_Bugs 阅读(58) 评论(0) 推荐(0) 编辑
摘要: unique_lock condition_variable 1:lock_guard 和 unique_lock 2:condition_variable wait 和 notify_all 方式1 std::mutex mtx; mtx.lock(); .. ... mtx.unlock();/ 阅读全文
posted @ 2022-12-14 11:35 Hello_Bugs 阅读(120) 评论(0) 推荐(0) 编辑
摘要: C++11多线程类库中提供了 include包含了很多原子类型 原子操作 若干汇编指令具有读-修改-写类型,也就是说它们访问存储器单元两次,第一次读原值,第二次写新值 假定运行在两个cpu上的两个内核控制路径试图通过执行非原子操作来同时读-修改-写同一个存储器。 首先两个cpu都试图读同一单元,然后 阅读全文
posted @ 2022-12-13 17:00 Hello_Bugs 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 多线程编程两个问题 1:线程互斥问题 竞态条件->临界区代码段->原子操作->互斥锁mutex 2:线程间的同步通信 生产者,消费者 线程模型 #include <iostream> #include <queue> #include <thread> #include <mutex> #inclu 阅读全文
posted @ 2022-12-13 15:47 Hello_Bugs 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 多线程程序 竞态条件:多线程程序执行的结果是一致的,不会随着CPU对线程不同的调用顺序而产生不同的运行结果. 解决?:互斥锁 mutex 经典的卖票问题,三个线程卖100张票 代码1 #include <iostream> #include <thread> #include <list> #inc 阅读全文
posted @ 2022-12-12 16:01 Hello_Bugs 阅读(138) 评论(0) 推荐(0) 编辑