C++
OneGit
相互学习,共同进步。
https://backwit.github.io/
展开
-
2021-01-31
常见易错算法题1 快排void QuickSort(vector<int>& nums, int start, int end){ //记录基准的的值 int index = nums[start]; int i = start; int j = end; while(i < j){ while(i < j && nums[j] >= index){ j--;原创 2021-01-31 21:01:11 · 132 阅读 · 0 评论 -
C++ 并行编程之原子操作的内存顺序
C++ 并行编程之原子操作的内存顺序1. C++原子操作的内存顺序概述memory order主要有以下几种:memory_order_relaxed只提供对单个atomic变量的原子读/写,不和前后语句有任何memory order的约束关系。memory_order_consume程序可以说明哪些变量有依赖关系,从而只需要同步这些变量的内存。类似于memory_ord...原创 2018-12-10 23:44:05 · 2235 阅读 · 0 评论 -
待办
blog:c++11 新特性梳理 https://www.jianshu.com/p/78c700c8d72dc++11 多线程编程原创 2018-11-26 22:05:15 · 394 阅读 · 0 评论 -
日积月累
1. C++ typedef typename用法https://blog.csdn.net/zhangxiao93/article/details/50569924简单说:typedef typename std::vector&amp;amp;amp;amp;lt;T&amp;amp;amp;amp;gt;::size_type size_type;表示: typedef创建了存在类型的别名,而typename告诉编译器std::vector::s...原创 2018-11-13 21:05:28 · 376 阅读 · 0 评论 -
c++11 std condition_variable_any和recursive_mutex配合使用例子
#include <iostream>#include <thread>#include <mutex>#include <condition_variable>#include <unistd.h>using namespace std;//std::mutex mtx;std::recursive_mutex rmtx...原创 2018-09-15 01:41:53 · 931 阅读 · 0 评论 -
《深度探索C++对象模型》读书笔记
《深度探索C++对象模型》读书笔记第一章 关于对象要点: 1. 对象模型 对象模型主要是讲了数据成员和函数在对象中的分布。 + 对于类来说,主要的数据成员分为 static 和 non static, 成员函数分为 static、non static 、virtual。 + 主要介绍了三类对象模型: - 简单对象模型 - 表格驱动对象模型 - c++对象...原创 2018-08-11 00:23:29 · 698 阅读 · 0 评论 -
C++ STL系列之:map
这篇写的不错 https://blog.csdn.net/shuzfan/article/details/53115922转载 2018-07-20 20:48:07 · 152 阅读 · 0 评论 -
C++ STL系列之:set
一、set介绍set 集合,与map不同的就是它的key和value相同。二、常用的函数1 基本上都有的iteratorset::beginset::endset::rbegin //逆序的set::rendset::cbegin //返回 const_iteratorset::cendset::crbegin //const_reverse_iteratorset:...原创 2018-07-20 20:38:14 · 205 阅读 · 0 评论 -
c++构造函数成员变量的初始化
前言写代码的时候才发现自己有多么菜,昨天应为构造函数变量初始化理解错误导致了未初始化的错误。前因后果看看我怎么定义的,typedef struct rb_node{ int key; int bhight; int color; struct rb_node* left; struct rb_nod...原创 2018-07-12 09:31:30 · 5238 阅读 · 0 评论 -
AVL平衡二叉树(c++实现)
#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;stack&gt;#include &lt;vector&gt;using namespace std;typedef struct _NODE{ int m_val; int m_hight; struct _NOD原创 2018-07-04 21:18:31 · 800 阅读 · 0 评论 -
C++ STL系列之:heap
实现通过vector和完全二叉树实现。 建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap(): 头文件 #include &lt;algorithm&gt; 函数:make_heap(start,end,cmp)push_heap(start,end) //在vector中加好了(push_back...原创 2018-06-27 00:13:45 · 7767 阅读 · 1 评论 -
红黑树创建和删除的原理与实现
定义节点 只有红 和 黑两种颜色根节点是黑色的红色节点的子节点必须为黑色每天从根节点到叶节点的路径上的黑色节点数都相等。创建红黑树#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;amp;am原创 2018-07-08 22:16:06 · 592 阅读 · 0 评论 -
C++ STL系列之: queue
常用函数empty Test whether container is empty (public member function ) size Return size (public member function ) front Access next element (public member function ) back Access last element...原创 2018-06-25 20:26:02 · 458 阅读 · 0 评论 -
C++ STL系列之: stack
常用函数empty() Test whether container is empty (public member function ) size() Return size (public member function ) top() Access next element (public member function ) push() Insert e...原创 2018-06-25 19:58:32 · 182 阅读 · 0 评论 -
C++ STL 系列之:deque
内存1.删除元素时 当只有一个缓冲区的时候,删除中间的一个元素,会把此元素前面的或者后面的整体移动,把这个坑补上,前面还是后面是根据删除元素距离哪一头更近。 当有多个缓冲区的时候,还不知道怎么搞的,new了两个512的,都只有一个缓冲区,可能刚好是多个连着了? 2.总的原理: 保存了一个map,map中的各个节点指向真实的缓冲区,每个deque可能有多个缓冲区。 当最后一个缓冲区的最...原创 2018-06-24 21:15:00 · 311 阅读 · 0 评论 -
C++ STL系列之:list
常用函数list List; //定义一个空的链表 list List(count); //建一个含count个默认值是0的元素的链表 list List(count, info); //建一个含count个默认值是info的元素的链表(info自定义的链表的一个元素) list List(List2); //建一个的copy链表 list List(List2.beg...原创 2018-06-23 13:50:58 · 203 阅读 · 0 评论 -
C++ STL 系列之:vector
vector的实现与使用一、扩容1.当元素的数目超过了capacity的值,就会将capacity的大小扩充为原来的两倍大小。 比如:v1 = 1,2,3 现在size=capacity=3, 此时在末尾插入一个4,v1=1,2,3,4 此时的size=4,capacity=6。 2.但是有一点要是你直接一次插入了4个值(可以用insert实验),超过了2*capacity,那个cap...原创 2018-06-22 21:28:20 · 214 阅读 · 0 评论