最新 最热

策略模式虽好,Policy-based design更佳

策略模式(设计模式——策略模式)大家耳熟能详,简言之,策略模式基于运虚表指针实现多态,但运行时的多态是有时间成本的。对于性能要求高的场景,策略模式反而不是最优选择。...

2024-07-18
18

C++设计模式——策略模式

在软件开发中,设计模式是提高代码可读性、可维护性和可扩展性的重要工具之一。其中,策略模式是一种行为型设计模式,它允许在运行时选择不同算法的行为,并支持不同策略的无缝切换。...

2024-07-18
17

开源库推荐——magic_enum

在 C++ 中,枚举类型是一种非常常见的数据类型,它允许程序员定义一组命名的常量。然而,标准的 C++ 枚举在某些方面存在限制,比如无法直接将枚举值转换为字符串。这就导致枚举型变量对于书写日志着实不够友好,如果仅仅将枚举...

2024-07-18
11

我天,map竟成性能瓶颈了

今天研读map的源码时,发现之前的代码在使用map时出现了性能问题,源码简化如下,

2024-07-18
20

C++20 格式化字符串

在 C++20 中引入的 std::format 是一个强大的工具,用于格式化字符串。它提供了一种简洁、类型安全且灵活的方式来构建格式化字符串,同时避免了传统的格式化函数带来的许多问题。...

2024-07-18
18

C++20 concepts

概念(concepts),作为模板元编程(类模板和函数模板)的一部分,提出对模板实参的要求,进而影响模板的特化和函数重载。在编译期对实参求值,检测实参是否满足概念所提出的要求。...

2024-07-18
12

C++20 飞船运算符

不同于之前的6种比较运算符:<、>、==、!= <=、>=。C++20提出一种的新的比较运算符——飞船运算符。

2024-07-18
9

历史上最全的const用法总结

其实const的用法在八股文系列的文章中很常见,但是总是过于零散,总结不是很全面,遂整理成文,以供大家享用,如果有不够全面还请大家补充,万分感谢。...

2024-07-18
8

这才是面试官想听到的答案,C++er必须得看看

在函数的开始位置记录下当前时刻,在函数的结尾处再次记录下当前时刻,两者做差即为函数耗时。

2024-07-18
15

C++线程池看这篇就够了,支持不同优先级,支持带返回值

随着多核处理器的普及,并发编程在提高应用程序性能方面变得越来越重要。C++标准库提供了多线程支持,但直接使用std::thread进行大规模并发编程无疑增加了线程创建、销毁的开销。...

2024-07-18
16