
STL内存池
简单说下:设计内存池的目的主要是为了解决在一些特殊的场合(比如:网络编程时接受数据包)频繁的创建和销毁、造成的大量的内存碎片和降低效率。 在STL的内存池中可以看到、它的实现是利用了一个自由链表数组、Obj** free_lists;数组中...
简单说下:设计内存池的目的主要是为了解决在一些特殊的场合(比如:网络编程时接受数据包)频繁的创建和销毁、造成的大量的内存碎片和降低效率。 在STL的内存池中可以看到、它的实现是利用了一个自由链表数组、Obj** free_lists;数组中...
(一)基本概念 协程(coroutine)是一种特殊的函数,它可以被暂停(suspend)、恢复执行(resume),并且一个协程可以被多次调用。C++中的协程属于stackless协程,即协程被suspend时不需要堆栈。C++20开始引...
初始化3个int型大小的元素,不清空,at正常访问 #include <iostream> #include <vector> using namespace std; int main() { vector<...
const一般是对类中成员函数属性的声明,但这个声明的位置怪怪的,只能放在函数声明的尾部,大概是因为其它地方都已经被占用了。 用const对成员函数进行声明,表示这个函数不会修改类中的任何数据成员。 如果在编写const成员函数时,不小心作...
自操作系统诞生以来,编写内存安全的代码一直是一个比较困难的问题 (另一个问题则是保证线程安全)。来自微软安全响应中心(MSRC)近20年来的安全数据显示,有约 70% 的安全漏洞补丁是针对内存安全漏洞的修复。 由于 C/C++ 不是一门内存...
我们在编写C++框架时,经常会涉及到一项基础技术,就是根据“一个动态库 + 一个类名称字符串“,动态的创建类对象。 这样做的好处是可以实现框架与业务代码的彻底解耦。框架不用关心业务侧的具体实现细节,只需要提供一个基类由业务方继承实现,然后业...
软件的性能分析,往往需要查看 CPU 耗时,了解瓶颈在哪里。perf和火焰图是性能分析的利器。本文主要介绍它们的基本用法。 一、perf性能分析工具 perf (performance 的缩写)是 Linux 系统原生提供的性能分析工具,会...
读写锁把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。C++17开始,标准库提供了shared_mutex类(在这之前,可以使用boost的shared_mutex类或系统相关api)。和其...
在 C++ 中,枚举(enum)是一种用户定义的类型,用于将一组相关的常量组合在一起。枚举可以提高代码的可读性和可维护性。下面是对 C++ 枚举类型的详细讲解。 基本枚举 基本的枚举定义方法如下: enum Color { Red, Gre...
1.问题描述 运行程序时,编译报错: error: cannot pass objects of non-trivially-copyable type ‘std::string {aka struct std::basic_string}...