
C++
嗔怪
学无止境
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
比malloc更快的内存池-高并发内存池
高并发内存池的设计与实现 1.概述 1.1 池化技术 池 是一种常见的工程中的模块。池的核心概念就是:将程序中经常需要使用的核心资源先申请出来,放到池内,需要的时候直接取出,从而提高资源的使用效率,也可以保证本程序占有的资源数量。 经常使用的池化技术包括,内存池,线程池和各种连接池。 1.1.2 内存池 内存池是一种动态管理内存的池化技术,原先我们使用new、delete或malloc、free的时候都会频繁从系统申请内存和释放内存,不仅效率低还会产生内存碎片。内存池则是在我们需要申请内存之前,先直接向系统原创 2020-08-25 10:24:00 · 945 阅读 · 0 评论 -
简单模拟实现unordered_set和unordered_map以及其底层hashtable
理解底层结构 unordered_map和unordered_set底层采用的是哈希桶的数据结构,说白了就是一个指针数组。每个数组单位称为一个桶,这个桶就是一个结点单链表。通过哈希散列函数映射到数组中的具体某个位置后,将数据形成一个新的桶结点插入进单链表。 模拟实现hashtable就是实现一个维护指针数组的类。 namespace HASH_BUCKET { template<class...原创 2020-04-09 17:27:07 · 404 阅读 · 0 评论 -
理解*(T**)&xxx
结论 * (T**)&xxx可以让一个地址赋值到当前指针指向变量的前4/8个字节上(取决于平台) 演示 #include <stdio.h> #include <iostream> using namespace std; int main() { double *p = new double(1); int a = 2; *(int**)p = &a...原创 2019-12-09 20:51:43 · 744 阅读 · 0 评论 -
C++:string类的实现
1、介绍string 2、代码实现 3、测试原创 2019-11-06 16:39:11 · 277 阅读 · 0 评论 -
引用作为返回值
(1)以引用返回函数值,定义函数时需要在函数名前加 & (2)用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。 引用作为返回值,必须遵守以下规则: 不能返回局部变量的引用。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。 不能返回函数内部new分配的内存的引用。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数...转载 2019-09-06 15:55:39 · 746 阅读 · 0 评论 -
const简单总结
常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常对象: 类名 const 对象名 常成员函数: 类名::fun(形参) const 常数组: 类型说明符 const 数组名[大小] 常指针: const 类型说明符* 指针名 (常量指针),类型说明符* const 指针名(指针常量) 首先提示的是:**在常变量(const 类型说明符 变...原创 2019-09-06 16:40:22 · 184 阅读 · 0 评论 -
C++在类中可以访问同类对象的私有成员
今天在实现string类的拷贝构造函数时,发现可以直接使用参数对象去访问该类的私有成员。 string(const string& s)//copy拷贝构造函数 :_str(new char[strlen(s.c_str)]), _size(s._size), _capacity(s._capacity) { strcpy(_str, s._str); ...原创 2019-09-23 14:07:43 · 1494 阅读 · 1 评论