![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
嗔怪
学无止境
展开
-
比malloc更快的内存池-高并发内存池
高并发内存池的设计与实现1.概述1.1 池化技术池 是一种常见的工程中的模块。池的核心概念就是:将程序中经常需要使用的核心资源先申请出来,放到池内,需要的时候直接取出,从而提高资源的使用效率,也可以保证本程序占有的资源数量。 经常使用的池化技术包括,内存池,线程池和各种连接池。1.1.2 内存池内存池是一种动态管理内存的池化技术,原先我们使用new、delete或malloc、free的时候都会频繁从系统申请内存和释放内存,不仅效率低还会产生内存碎片。内存池则是在我们需要申请内存之前,先直接向系统原创 2020-08-25 10:24:00 · 851 阅读 · 0 评论 -
简单模拟实现unordered_set和unordered_map以及其底层hashtable
理解底层结构unordered_map和unordered_set底层采用的是哈希桶的数据结构,说白了就是一个指针数组。每个数组单位称为一个桶,这个桶就是一个结点单链表。通过哈希散列函数映射到数组中的具体某个位置后,将数据形成一个新的桶结点插入进单链表。模拟实现hashtable就是实现一个维护指针数组的类。namespace HASH_BUCKET{ template<class...原创 2020-04-09 17:27:07 · 353 阅读 · 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 · 691 阅读 · 0 评论 -
C++:string类的实现
1、介绍string2、代码实现3、测试原创 2019-11-06 16:39:11 · 231 阅读 · 0 评论 -
引用作为返回值
(1)以引用返回函数值,定义函数时需要在函数名前加 &(2)用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。引用作为返回值,必须遵守以下规则:不能返回局部变量的引用。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。不能返回函数内部new分配的内存的引用。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数...转载 2019-09-06 15:55:39 · 699 阅读 · 0 评论 -
const简单总结
常变量: const 类型说明符 变量名常引用: const 类型说明符 &引用名常对象: 类名 const 对象名常成员函数: 类名::fun(形参) const常数组: 类型说明符 const 数组名[大小]常指针: const 类型说明符* 指针名 (常量指针),类型说明符* const 指针名(指针常量)首先提示的是:**在常变量(const 类型说明符 变...原创 2019-09-06 16:40:22 · 151 阅读 · 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 · 1424 阅读 · 1 评论