C++
文章平均质量分 85
Skrrapper
C/C++领域创作者、优快云校园主理人、阿里云专家博主
编程之大,无奇不有。让我们共同学习,一起进步!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【STL】set、multiset、unordered_set、unordered_multiset 的区别
C++ STL中的set、multiset、unordered_set和unordered_multiset四种容器的主要区别在于元素唯一性、排序特性和底层实现。set和multiset基于红黑树实现,保持元素有序,时间复杂度为O(log n);前者元素唯一,后者允许重复。unordered_set和unordered_multiset基于哈希表实现,元素无序存储,平均时间复杂度为O(1);前者元素唯一,后者允许重复。选择依据:需要排序时用set/multiset,追求性能且不关心顺序时用unordered原创 2025-11-02 13:20:44 · 342 阅读 · 0 评论 -
【C++】C++11出来之后,到目前为止官方都做了些什么更新?
摘要:C++11后每三年发布新标准,经历了多次迭代更新。C++14(2014)是小修小补,主要改进泛型lambda和返回值推导;C++17(2017)强化标准库,新增结构化绑定和并行算法;C++20(2020)是重大更新,引入概念、协程和模块化;C++23(2023)继续优化,增强范围库和并发支持。未来C++26可能加入反射和模式匹配等特性,持续推动语言现代化发展。(149字)原创 2025-10-29 00:10:48 · 731 阅读 · 0 评论 -
【C++】C++11都有什么新特性?
C++11是C++语言的重大更新,引入了众多现代特性,包括:自动类型推导(auto)、范围for循环、右值引用与移动语义优化性能、智能指针管理内存、nullptr取代NULL、constexpr编译期计算、Lambda表达式、统一初始化语法、标准线程库支持并发、强类型枚举(enum class)。标准库新增了std::array、哈希表容器、tuple等。这些改进使C++代码更简洁安全高效,解决了传统C++在内存管理、并发编程等方面的痛点,成为现代C++开发的基石。原创 2025-10-28 08:39:05 · 1346 阅读 · 0 评论 -
【C++】C++中的 set
set。原创 2025-10-27 20:10:47 · 471 阅读 · 0 评论 -
【C++】C++ 中的 map
C++中的std::map是一种有序关联容器,基于红黑树实现,提供O(log n)时间复杂度的查找、插入和删除操作。其优势包括自动按键排序、稳定性能和完整STL接口,适合需要范围查询或有序输出的场景。但相比哈希表(unordered_map),它的内存开销更大且缓存效率较低。选择时应权衡排序需求和性能要求:map适合有序数据操作,而unordered_map更适合快速查找。使用时需注意避免重复查找开销和默认构造问题。std::map是有序场景下的可靠选择,但非性能敏感场景的最优解。原创 2025-10-25 17:46:53 · 729 阅读 · 0 评论 -
【C++】对 C++ 祛魅——设计中的那些缺陷
C++ 是一门伟大的语言。它为高性能系统编程、游戏引擎、数据库内核等领域提供了强大的工具,同时又保留了 C 的底层能力。然而,伟大不等于完美。C++ 作为一门历经 40 多年演化的语言,在一开始的时候,其实并没有那么好用~就算到现在,它依旧还是有诟病之处。今天就来总结一下~原创 2025-10-05 12:02:39 · 706 阅读 · 0 评论 -
【C++】C++ 中多态是什么?咋用的?
C++多态分为编译时多态(如函数重载、模板)和运行时多态(继承+虚函数)。运行时多态通过虚函数表(vtable)实现:每个虚函数的类都有vtable,对象包含指向vtable的vptr指针。当基类指针调用虚函数时,通过vptr找到实际函数地址,实现动态绑定。虚函数虽带来运行时开销(无法内联),但支持基类指针调用派生类函数,面向接口编程。多态机制是C++实现"同一接口,不同实现"的核心技术。原创 2025-10-03 22:19:32 · 592 阅读 · 0 评论 -
【C++】C++的多态是个啥,咋用的?
本文介绍了C++中的多态特性。多态是指同一段代码在不同对象上表现出不同行为,分为编译时多态和运行时多态。实现运行时多态需要满足继承、虚函数和基类指针调用三个条件。底层通过虚函数表(vtable)机制实现,虽然会带来轻微性能开销但影响不大。使用多态时需要注意将析构函数设为虚函数、避免对象切片等问题,并可与模板结合实现更强大的功能。多态是面向对象编程的核心特性,正确使用可以使代码更灵活易扩展。原创 2025-10-01 17:25:41 · 302 阅读 · 0 评论 -
【C++】C++继承是个啥?咋用的?
C++继承机制详解:实现代码复用与多态的核心技术 文章系统介绍了C++中的继承机制,包括其基本概念、语法规则和使用方法。主要内容包括: 继承的本质是通过"is-a"关系实现代码复用,允许派生类沿用基类成员和方法 三种继承方式(public/protected/private)及其对访问权限的影响 构造/析构函数的执行顺序和注意事项 成员隐藏、重写与虚函数实现多态的关键机制 继承的常见问题(如菱形继承)和底层实现原理(虚函数表等) 设计建议:合理使用继承,优先考虑组合而非继承 文章深入浅出原创 2025-10-01 17:24:59 · 562 阅读 · 0 评论 -
【C++】STL:Stack详解
本文介绍了C++ STL中的stack容器,它是一种后进先出(LIFO)的数据结构。文章详细讲解了stack的基本用法和常用操作(push、pop、top等),并指出stack实际上是一个容器适配器,默认使用deque作为底层容器。同时列举了stack在括号匹配、表达式转换等算法中的典型应用场景,分析了其性能特点(常数时间操作、不支持遍历等)。最后总结指出stack是处理特定问题的简洁高效工具,但不适合需要遍历的场景。原创 2025-09-28 00:03:46 · 460 阅读 · 0 评论 -
C++中的模板是个啥机制?好用吗?
C++ 的模板(Template)可以看作是一种“泛型”编程机制,它让我们编写与的代码。简单来说,使用模板时,编译器会在编译期,从而避免了为不同类型重复编写相同逻辑的代码。模板解决了代码复用性和类型安全的问题:相同的算法或数据结构可以应用于多种类型,而编译器会在实例化时保证类型一致,不会出现像宏那样的盲目替换导致的类型混乱。与 C++ 中的宏相比,宏在预处理阶段只做简单的文本替换,不做类型检查,易引入难以察觉的错误;而模板是语言层面支持的泛型工具,在才展开代码,保证了类型安全和可维护性。原创 2025-09-27 09:07:00 · 1040 阅读 · 0 评论 -
【C++】deque的设计思想
摘要 C++ STL中的deque采用分段连续内存+中控指针数组设计,通过固定大小的缓冲区(如512字节)和中央控制器map(指针数组)实现逻辑连续。其特点包括: 双端操作:头部/尾部插入均摊O(1),仅在缓冲区满时分配新块或扩容map; 随机访问:通过index/block_size定位块,index%block_size定位偏移,实现O(1)访问; 迭代器:含跨块判断逻辑(cur/first/last/node指针),但稳定性弱于list; 扩容优化:仅复制指针(vector需搬移数据),频率更低。 d原创 2025-09-25 20:47:29 · 744 阅读 · 0 评论 -
【C++】: list介绍以及模拟实现
【C++ STL list详解与模拟实现】 摘要: list是STL中的双向链表容器,具有高效的插入/删除性能(O(1)),但不支持随机访问。与vector相比,list每个节点多存储两个指针,内存占用更高,但插入删除不会使其他迭代器失效。本文详细介绍了list的特性、常用接口(如push_back/pop_front等)和特殊链表操作(merge/splice等),并通过模拟实现展示了其核心结构:包含prev/next指针的节点类、双向迭代器设计以及基本操作实现。关键点包括:1)双向链表结构;2)迭代器稳原创 2025-09-25 20:46:38 · 1232 阅读 · 0 评论 -
【C++】Chapter04<STL部分>:STL标准模板库概要
自定义分配器允许开发者控制内存管理策略。例如,可以实现一个内存池分配器,以减少频繁的内存分配和释放带来的开销。原创 2025-04-07 20:25:33 · 712 阅读 · 3 评论 -
【C++】Chaper03 函数模板与泛型
模板在三大件——office中,经常有样式这个词出现;C++中的模板其实和它差不多。学习C语言的时候,我们经常要写一个函数叫做Swap,但是由于经常要指定参数的类型,所以可能不止要写一种。那么有没有一个方法来实现通用的函数呢?这就是模板出现的作用所在。原创 2025-03-25 08:27:05 · 477 阅读 · 1 评论 -
【C++】Chapter02 内存管理
newdelete是操作符,而C语言中的mallo等是函数。在 C++ 中,new和deletenew关键字在堆(heap)上分配内存,并返回指向该内存的指针。delete关键字释放由new分配的内存,避免内存泄漏。在自定义类型中,new/delete和malloc/free的最大区别是前者除了开辟和释放空间,还会调用构造函数和析构函数。int main()原创 2025-03-24 19:27:06 · 1044 阅读 · 0 评论 -
【C++】Chapter01 类与对象
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号类体中内容称为类的成员类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数;注:计算对象的大小只计算成员变量大小总和,而不计算函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成inline内联函数处理。类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名(声明定义分离)原创 2025-03-24 08:39:59 · 934 阅读 · 0 评论 -
【C++】Chapter 0:当你学习C++之前首先需要了解的
注:此文章主要介绍C++中的特征及基本语法问题。原创 2025-02-19 16:10:27 · 749 阅读 · 0 评论
分享