
C++
文章平均质量分 86
弥川
手持两把锟斤拷,口中疾呼烫烫烫
展开
-
程序编译和链接
程序编译和链接过程分析原创 2024-08-03 20:09:24 · 779 阅读 · 0 评论 -
C++ 发展历史
C++98标准是C++的第一个国际标准,与早期的C++相比,它有了重大进步。原创 2024-07-02 13:28:56 · 1264 阅读 · 0 评论 -
Boost 智能指针
weak_ptr 被设计为与 shared_ptr 协同工作,可以从一个 shared_ptr 或另一个 weak_ptr 对象构造以获得资源的观测权。头文件<boost/smart_ptr/make_unique.hpp>里实现了make_unique()函数,位于名字空间 boost 而不是 std,为了避免潜在的冲突。引用计数型的智能指针,可以被自由地拷贝和赋值,可以在任意的地方共享它,当没有代码使用它时(引用计数为0),才删除被包装的动态分配的对象。不能被复制或赋值给其他。原创 2024-07-01 17:57:29 · 483 阅读 · 0 评论 -
C++面试题精选-2024/06/26
多态(Polymorphism):在编程语言和类型论中,多态指为不同数据类型的实体提供统一的接口。多态类型可以将自身所支持的操作套用到其它类型的值上。多态是面向对象编程的重要特性之一,它允许我们为不同的数据类型提供统一的接口,并在运行时根据对象的实际类型来决定执行哪个方法。通过多态,我们可以提高代码的复用性、扩展性和可维护性,但也需要注意其可能带来的性能开销和复杂性增加等问题。原创 2024-06-26 21:24:42 · 998 阅读 · 0 评论 -
list源码剖析
list源码剖析文章目录list源码剖析定义模板参数成员函数特殊函数元素访问迭代器容量修改器操作非成员函数参考资料定义定义:支持常数时间从容器任何位置插入和移除元素的容器。不支持快速随机访问。通常实现为双向链表。template< class T, class Allocator = std::allocator<T>> class list;模板参数T - 必须满足可拷贝赋值 (CopyAssignable) 和可拷贝构造 (CopyConstructi原创 2022-05-01 12:55:10 · 379 阅读 · 0 评论 -
vector源码剖析
vector源码剖析文章目录vector源码剖析定义成员类型成员函数特殊函数元素访问迭代器容量修改器非成员函数参考资料定义定义:封装动态数组的顺序容器。template< class T, class Allocator = std::allocator<T>> class vector;**模板参数 **T 必须满足可拷贝赋值(CopyAssignable)和可拷贝构造(CopyConstructible)的要求。Allocator 用于获取/释放内存原创 2022-04-30 22:55:06 · 917 阅读 · 0 评论 -
C++ Template
C++ Template❓为什么要使用模板不用模板方式实现功能重复实现相同功能:针对每个所需相同行为的不同类型,一次又一次地实现它,做了许多重复的工作,会犯同一个错误;还会舍弃复杂但更好用的算法:因为复杂算法通常都趋向于引入更多的错误。继承基类:把通用代码放在一个诸如Object或者void*的公共基础类里面。借助公共基类来编写通用代码,将失去类型检查这个优点。另外,对于以后实现的许多类,都必须继承自某个特定的基类,这会令代码的维护更加困难。使用特殊的预处理程序:使用了一个诸如C或C++预处理器原创 2022-04-20 18:01:48 · 806 阅读 · 0 评论 -
C++内存模型与名称空间
C++内存模型与名称空间主要内容单独编译存储持续性、作用域、链接性定位(placement)new运算符名称空间单独编译程序文件结构头文件:包含结构声明和使用这些结构的函数的原型函数原型使用#define或const定义的符号常量结构声明类声明模板声明内联函数源代码文件:包含与结构有关的函数的代码源代码文件:包含调用与结构相关的函数的代码注意:<myhead.h>代表在标准头文件的目录中查找;包含自定义头文件,使用"myhead.h",代表在原创 2022-04-17 21:25:33 · 125 阅读 · 0 评论 -
STL函数库
STLvector函数成员函数功能begin()返回指向容器中第一个元素的迭代器。end()返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用。rbegin()返回指向最后一个元素的迭代器。rend()返回指向第一个元素所在位置前一个位置的迭代器。cbegin()和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。cend()和 end() 功能相同,只不过在其基础上,原创 2022-04-14 10:50:12 · 839 阅读 · 0 评论 -
C++ 智能指针
简介:C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。7 种智能指针:std::auto_ptrstd::auto_ptr 可用来管理单个对象的堆内存,但是,请注意如下几点:(1)尽量不要使用“operator=”。如...转载 2020-04-14 15:56:56 · 144 阅读 · 0 评论