![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++应用
文章平均质量分 53
哦咧哇岸居
一个C++渣渣
展开
-
C++协程库实现
概念 协程,是一个程序组件,其功能其实就是执行一段可由用户随时中断或继续运行的代码,可与异步机制结合。一个线程中,可存在多个协程。实现 windows平台下具有Fiber概念,其API提供了创建CreateFiberEx、删除DeleteFiber、切换SwitchToFiber的接口,Fiber可看作是协程在windows平台下的实现。 linux平台下我这里使用glibc提供的ucontext实现(感谢网友的贡献,让我抄一下代码),需手动实现保存...原创 2021-03-15 21:10:03 · 1253 阅读 · 0 评论 -
用内存池简单模拟内存分配
前言本篇文章仅学习用,并无实际应用场景。内存管理是为了将有限的空闲有效地利用起来,虽然标题说的是内存分配,实际上也包含回收和内存碎片整理的功能,当然也只是简单模拟一下。原理1. 内存池 内存池的空间是有限的,且不能增加不能减少;内存池不是只分配一种类型的对象,而是可以分配多种类型的对象。为了方便,将空闲的内存块和占用的内存块分别放到两个链表来管理。2. 内存块 类型不同,那占用空间就可能不同。为了解决不同占用空间的对象之间不会存在冲突的内存地址,为每个...原创 2021-03-01 00:07:04 · 345 阅读 · 0 评论 -
C++线程池的实现
编译环境:C++11线程池源码:#ifndef THREAD_POOL_H#define THREAD_POOL_H#include <thread> // std::thread#include <functional> // std::function#include <mutex> // std::mutex std::unique_lock#include <chrono> // std::chrono#include <原创 2021-01-16 10:38:52 · 305 阅读 · 0 评论 -
位集Bitset的实现
本次带来Bitset模板库,除了跟标准库作全部兼容之外,还对C++14及以上版本环境进行了优化,可将对象声明为constexpr。编译环境:C++11源码:#ifndef BITSET_H#define BITSET_H#include <iosfwd>#include <string>#if __cplusplus >= 201703L#define CXX17_CONSTEXPR constexpr#else #define CXX17_CO原创 2020-12-01 00:53:10 · 269 阅读 · 0 评论 -
MinGW编译,其他win平台运行的方法
最近有一个朋友,想要看一下他设计的数学概率模型,验证一下模型的可行性,然后就找到了我,要我写一个脚本模拟运行一下他的模型。他没有任何的开发环境,只有一个普普通通的windows系统。本来我打算用python写,但是无奈,没有pyinstaller,想安装但是又被墙了,没办法,只能靠自己电脑上的MinGW编译出来的exe了。写好之后,把这个exe文件发给了他,但是缺了一个又一个的dll文件。...原创 2020-03-23 23:59:53 · 620 阅读 · 0 评论 -
C++字符串格式化的实现
关于C++字符串格式化,其实是我在用C++输出时间字符串时想用到的,格式化有时候是个很方便的东西,但是找着网上也没有什么好用的方法,所以就自己实现了一个。时间复杂度为O(n),基本就是遍历一遍待格式化的字符串。还有,代码未经优化,先看着吧,有空再优化。为了解决变长模板参数就已经绞尽脑汁了,再弄下去头发都掉光了。C++标准:C++17以上#ifndef __FORMAT_H__#de...原创 2019-12-28 16:26:33 · 968 阅读 · 2 评论