
C++
文章平均质量分 58
~
从此开始低调范✌️
这个作者很懒,什么都没留下…
展开
-
C++同步阻塞队列
用同步阻塞队列解决生产者消费者问题。 生产者消费者问题: 有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池, 生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,所有生产者和消费者都是异步方式运行的,但它们必须保持同步, 即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经装满产品且尚未被取走的缓冲区中投放产品。 //SyncQueue.hpp #include <list> #转载 2022-03-16 09:20:21 · 317 阅读 · 0 评论 -
重载全局和成员new/delete
1. 重写全局new/delete 重载::operator new、::operator delete、::operator new[]、operator delete[] 注意:如果重载的是全局的,所以创建对象时编译器调用operator new、operator delete时都会去调用自己重载的版本;如果重载的类成员operator new,那么只在创建和释放该类对象时编译器调用自己重载的operator new、operator delete版本。 如果Fraction类没有重写本来的new/de原创 2022-05-27 17:54:51 · 490 阅读 · 0 评论 -
C++面向对象之类与类关系
1. 复合:has-a关系 queue(队列)容器:是一种先进先出的数据结构。 队列容器允许从一端新增元素,从另一端移除元素 队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为 deque(双端数组)容器:可以在头尾两端进行插入和删除操作。 擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。 可以根据需要修改自身的容量和大小。 容器中存储元素并不能保证所有元素都存储到连续的内存空间中。 queue与deque就是一种has-a关系,queue中包含了原创 2022-05-22 14:20:15 · 384 阅读 · 0 评论 -
详析new/delete内存分配与释放的内部工作流程
本文借用C++标准库中Complex类和string类中的部分代码,详细阐述了new/delete的工作流程,并剖析了new和array new内存泄漏的情况。原创 2022-05-21 17:11:36 · 456 阅读 · 0 评论 -
cin(>>)、fgets、cin.getline函数区别(附加strlen函数)
cin(>>) fgets cin.getline 不会读入回车键,遇到空格键、Tab键、回车键直接结束。(空格键、Tab键后内容会留存在缓冲区内) 会读入回车键,遇到空格键、Tab键、不会结束,遇到回车键结束。(所有按键都会读入) 不会读入回车键,会读取整行内容,遇到回车键结束。(空格键、Tab键内容也都会读入) ...原创 2021-10-19 18:19:08 · 512 阅读 · 0 评论 -
C++变参函数
void SetLastErrorInfo( const char *szModule_, const char *szInfo_, ... ) { char szErr[MINSHORT] = ""; va_list vaArgs; va_start(vaArgs, szInfo_); _vsnprintf(szErr, sizeof(szErr)-1, szInfo_, vaArgs); _snprintf(_szLastError, sizeof(_szLast原创 2021-09-07 09:10:08 · 295 阅读 · 0 评论 -
itoa()、atoi()函数C++实现
#include <iostream> #include <string.h> using namespace std; char* int2str(int num) { char* buf = new char[10]; memset(buf, 0, 10); int temp = num < 0 ? -num : num;//取num的绝对值temp int i = 0; while (temp != 0) { buf[i++] = (temp % 10)原创 2020-11-19 22:34:42 · 380 阅读 · 0 评论