- 博客(5)
- 收藏
- 关注
原创 容器之std::map与QMap
本文对比分析了C++标准库中的std::map与Qt框架中的QMap两种关联容器。两者都基于红黑树实现,提供O(logn)的查找性能,但存在框架差异:std::map是标准C++实现,而QMap需要Qt环境。文章详细介绍了它们的使用方法,包括插入、查找和遍历操作,并指出std::map适合纯C++项目,QMap更适合Qt项目。此外,还介绍了支持重复键的std::multimap和QMultiMap的用法。开发者在选择时应根据项目框架需求决定使用哪种容器。
2025-10-15 07:00:00
276
原创 容器std::set与QSet
本文对比分析了C++标准库的std::set和Qt框架的QSet两种集合容器。std::set基于红黑树实现,保持元素有序,操作复杂度为O(logn);QSet基于哈希表实现,查找效率高(平均O(1))但无序存储。主要差异体现在底层结构、时间复杂度(std::set稳定,QSet可能退化)和内存占用上。std::set适用于需要排序和范围查询的场景,而QSet更适合快速查找和集合运算。选择时应考虑功能需求(是否需有序)和开发环境(是否使用Qt)。两种容器均非线程安全。
2025-10-13 23:55:51
536
原创 C++初始化列表(std::initializer_list)
C++初始化列表是构造函数的一部分,用于在对象创建时直接初始化成员变量。其执行顺序与成员变量声明顺序一致,否则会导致未定义行为。相比构造函数体内赋值,初始化列表效率更高,特别是对自定义类型。C++11新增std::initializer_list,支持用"{}"语法初始化对象,可通过重载构造函数和赋值运算符实现。使用注意事项:1)初始化列表优先于构造函数体内赋值;2)初始化顺序需与变量声明顺序一致;3)可利用std::initializer_list实现更简洁的初始化方式。
2025-10-13 00:43:05
169
原创 设计模式之行为型:策略模式
策略模式是一种实用的设计模式,可以将复杂的问题分解为更小的部分,并提供了更好的扩展性。在实际应用中,需要根据具体需求和系统复杂性来灵活选择是否使用策略模式。在一些简单的情况小使用策略模式,反而会增加代码的复杂性。
2024-01-11 00:11:08
844
1
原创 一文了解C语言中常用的字符串和内存操作函数:strcpy、memcpy区别及用法
strcpy和memcpy都是C语言中常用的字符串和内存操作函数。根据实际需求选择适当的函数,并注意参数的正确性和安全性。这些函数在处理字符串和内存操作时非常实用,可以提高程序的效率和可读性。熟练掌握这两个函数的用法,将能更好地开发和调试C语言程序。
2023-11-19 12:44:23
510
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅