C++

C++_可以重载的运算符

C++_可以重载的运算符

bingliaolong 5年前 2 0

运算符 符号 非成员 二元算术运算符 + - * / % 是 一元算术运算符 + - 是 按位运算符 ~ & | ^ << >> 是 逻辑运算符 ! && || 是 赋值运算符 = 否 复合赋值运算符 += -= *= /= %= ...

Spdlog记述:一

Spdlog记述:一

bingliaolong 2年前 12 0

使用介绍 默认的 创建一个多线程日志记录器 创建的日志记录器是多线程的,这意味着它可以被多个线程同时使用,而不会发生竞争条件或数据损坏 用于创建多线程的循环日志记录器 循环日志记录器是指在达到指定大小后,会自动循环覆盖旧的日志文件并创建新的日志文件来存储日志消息 循环日志记录器还...

线程和协程

线程和协程

bingliaolong 11个月前 10 0

超线程技术 概述 现代CPU通常确实在物理核心的基础上引入逻辑核心,例如通过超线程(Hyper-Threading)技术,一个物理核心能够处理两个线程 使得操作系统和应用程序认为该CPU拥有的核心数量翻倍 不过,CPU的逻辑核心和线程的概念在软件开发中存在一些区别 逻辑核心更偏向...

STL_slist

STL_slist

bingliaolong 5年前 4 0

异同 STL list是个双向链表。SGI STL另提供了一个单向列表,叫slist。 slist的迭代器属于单向的Forward iterator,list迭代器是双向的Bidirectional Iterator。 slist功能少点,所耗用的内存小点。 共同点是插入,移除,...

深入理解C++11:C++11新特性解析与应用 二

深入理解C++11:C++11新特性解析与应用 二 2

bingliaolong 3年前 6 0

常用特殊 静态类型动态类型 主要区别在于对类型进行检查的时间点。 对于所谓的静态类型,类型检查主要发生在编译阶段。 对于动态类型,类型检查主要发生在运行阶段(和类型推导相关)。 auto auto声明变量的类型必须由编译器在编译时期推导而得。 auto声明的变量必须被初始化,以使...

Zlib记述:一

Zlib记述:一

bingliaolong 2年前 19 0

概述 zlib库是一个广泛使用的压缩/解压缩库 下面实现是用了zlib 1.3版本的代码和相关库 具体是使用了zlib源码中带的minizip 其中的minizip扩展提供了处理ZIP文件的功能 解压 在解压之前可能需要处理其他的很多工作,比如验证目录,验证目标文件是否存在等。这...

C++20_第三篇、协程

C++20_第三篇、协程

bingliaolong 3个月前 7 0

协程 概述 C++20 协程(Coroutines)是一种无栈协程实现,通过挂起/恢复机制简化异步编程,将回调式代码转化为顺序式结构 使用C++20协程时,必须实现promise类型(协程的行为控制器)和可选的awaitable对象(挂起/恢复行为控制器) 机制 无栈设计 协程状...

C++并发编程 _管理线程

C++并发编程 _管理线程

bingliaolong 5年前 9 0

介绍 每个C++进程都拥有至少一个线程,它是由C++在运行时启动的。该线程运行着main()函数。 我们自己的程序可以继续启动具有其他函数作为入口的线程。然后,这些线程连同初始线程一起,并发运行。 正如程序会在main()函数返回时退出那样,当指定的入口函数返回时,该线程就会退出...

C++并发编程 _ 内存模型原子操作

C++并发编程 _ 内存模型原子操作 5

bingliaolong 3年前 22 0

内存模型 对象和内存位置 在一个C++程序中的所有数据都是由对象(objects)构成。 无论对象是怎么样的一个类型,一个对象都会存储在一个或多个内存位置上。 每一个内存位置不是一个标量类型的对象,就是一个标量类型的子对象,比如,unsigned short,my_calss*或...

Effective C++_第二篇

Effective C++_第二篇

bingliaolong 1年前 3 0

12 复制对象的所有部分 概述 在C++中,实现拷贝构造函数和赋值运算符时,确保复制对象的所有成员变量是至关重要的 忽略某些成员变量可能会导致不完整或错误的对象状态,进而引发难以追踪的错误 为什么要复制对象的所有部分 保持对象的一致性: 所有成员变量都应该在拷贝时保持一致,以确保...

扫一扫二维码分享