select and poll代码示例:https://gitee.com/tgwTTT/linux-learning-dai/tree/master/select epoll代码示例:https://gitee.com/tgwTTT/linux-learning-dai/tree/master/Tcpepollser……
-
-
-
-
-
-
-
-
-
-
gitee仓库:https://gitee.com/tgwTTT/c-lreant/tree/master/c++Type%20conversion 1. C中的类型转换 在C语⾔中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不⼀致时等场景,就需要发⽣类型转化,C语⾔中总共……
来自分类:c++ -
仓库地址 https://gitee.com/tgwTTT/data-structure 在计算机科学中,我们经常会遇到一个问题:如何判断一个元素是否存在于一个集合中? 当数据量较小时,使用哈希表或平衡树就能很好解决。但当数据量达到数十亿级别时,传统的数据结构会遇到内存瓶颈。这时,布隆过滤器(Bloom Filter)……
来自分类:c++ -
git仓库地址:https://gitee.com/tgwTTT/c-lreant.git 一.vector的定义:在 C++ 中,vector 是标准模板库(STL)提供的一个动态数组容器,位于头文件 中。它可以自动管理内存,支持动态扩容,是 C++ 中最常用的容器之一。 (constructor)构造函数声明 接口……
来自分类:c++ -
以下测试代码gitee仓库地址:https://gitee.com/tgwTTT/c-lreant/tree/master/Smart%20pointer 在C++使用内存的时候很容易出现野指针、空指针、内存泄露。所以C++11引入了智能指针来管理内存。在c++11中一共引入了3种指针,即unique_ptr 、sha……
来自分类:c++ -
本文继上一篇文章http://www.tgwttt.xyz/?p=169。 一 .lambda表达式:lambda 表达式本质是⼀个匿名函数对象,跟普通函数不同的是他可以定义在函数内部。lambda 表达式语法使⽤层⽽⾔没有类型,所以我们⼀般是⽤auto或者模板参数定义的对象去接收 lambda 对象。lambda表达……
来自分类:c++ -
C++11 是 C++ 的第⼆个主要版本,并且是从 C++98 起的最重要更新。它引⼊了⼤量更改,标准化了既有实践,并改进了对 C++ 程序员可⽤的抽象。在它最终由 ISO 在 2011 年 8 ⽉ 12 ⽇采纳前,⼈们曾使⽤名称“C++0x”,因为它曾被期待在 2010 年之前发布。C++03 与 C++11 期间花……
来自分类:c++ -
以下代码已在gitee上开源,仓库地址:https://gitee.com/tgwTTT/c-lreant/tree/master/hash 哈希表是c++学习中重要的一部分,如c++里面的unordered_set/map都是用hash封装的,查找效率较由红黑树封装的map/set更加高效,下面是我将带领大家用开放定……
来自分类:c++ -
本文代码已在gitee上开源代码仓库地址https://gitee.com/tgwTTT/c-lreant 学习之前建议先阅读博主以前的文章http://www.tgwttt.xyz/?p=124 本篇博客是对map/set的底层代码实现,map/set是c++中常用和重要的容器,二者底层实现逻辑一致,均为红黑树(如下……
来自分类:c++ -
内存池是用来实现内存的高效管理,用于替代系统内存管理函数(malloc,free)。内存池主要解决内存管理中的两个问题即: 1.效率问题:系统频繁的申请内存所占据的时间损耗对程序问题带来的影响。 2.内存碎片化问题:如图所示: 当图中的两片问题不连续时,我们无法合理的利用用空间,导致空间的浪费。 malloc函数:ma……
来自分类:c++ -
二叉搜索树又称AVL,他比之二叉搜索树(前面文件介绍了)多了一个重要的特性,左右子树高度差不能超过一,而这个特性是由平衡因子决定的,今天主播就带领大家手搓一个平衡二叉搜索树。 首先是节点的创建,我们依旧依照以前的二叉搜索树写,只不过多了parent指针和平衡因子。代码如下: templatestruct AVLTree……
来自分类:c++ -
四个stl容器的底层都是使用红黑树实现的(平衡二叉搜索树的一种,后续博主会更新),set是key类型的,map是key-value类型.由于底层是由二叉搜索树(前一篇有介绍)写的,所以查找效率很高为logN。 set: 下面介绍一下set的几个重要接口和用法 插入函数insert(),如:s.insert(5); 遍历……
来自分类:c++ -
二叉搜索树(Binary Rearch Tree)是二叉树的一种,他需要满足条件左子树的key大于右子树的key的条件.首先我们确定一个数组arr[6]={3,6,2,1,8,4},将其插入二叉搜索树中如图所示 先插入3作为根节点,后面插入6,6>3作为3的子节点,后面插入2,2_right; } 而且当两边都有节点时……
来自分类:c++ -
项目完整代码:https://gitee.com/tgwTTT/high-concurrency-memory-pool 前言 为什么要自己造轮子? 现代很多的开发环境都是多核多线程,在申请内存的场最下,必然存在激烈的锁竞争问题。malloc本身其实已经很优秀,但是传统的glibc中的malloc和Free页存在很多缺……
来自分类:c++