cpp后端学习笔记

1.shared_ptr的循环引用

出现的原因是shared_ptr互相指向对方,结果内存区域的引用总是大于0的,结果资源持久不能释放。

智能指针是对RAII的实现,用类的初始化和析构来管理资源,在初始化的时候分配资源析构释放资源。

2.stl

stl主要是六个组成部分,其中容器是数据存储的容器,分为序列式容器和关联式容器,序列式容器比如list、deque,关联式容器有set、map。

迭代器提供了遍历访问数据的方法,对于链表这些并不总是可以通过下标去访问于是可以用迭代器。

算法,通过迭代器和容器联系起来,例如排序算法,去重。

3.前置++和后置++

前置返回的是对象的引用效率更高,后置需要创建新的对象。

4.trival destructor

直译就是不重要的析构函数,这些析构函数不需要像智能指针里的必须用,比如减少引用释放空间,这里的是可有可无的,编译器为了效率可能不会产生,对于这些在new之后的delete就可以不调用析构函数。

相关推荐
stolentime2 分钟前
(有原题)CSP-S2026第一轮试题(附答案解析、markdown源码)
c++·csp
m0_7345717614 分钟前
深入理解C++ RAII
开发语言·c++
hetao173383736 分钟前
2026-09-18 hetao1733837 的刷题记录
c++·算法
stolentime1 小时前
CSP-J2026第一轮试题(附答案解析、markdown源码)
c++·csp
Rabitebla1 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
库玛西1 小时前
数据结构与算法之美:树、森林与二叉树全解析
c语言·数据结构·笔记·考研·算法·学习方法
程序员老陆2 小时前
std::experimental::when_any 深度解析:等待“第一个完成”的异步组合原语
c++·多线程
Rabitebla2 小时前
【Linux系统编程】指令(三):创建、删除、复制、移动、看内容
linux·数据结构·c++·算法
程序员老陆3 小时前
CMake 常用关键字与命令全景:从 set到 target_link_options的现代工程视角
c++·cmake·程序开发
小李不想当小白3 小时前
PCB结构与组成(PCB设计入门学习笔记)
经验分享·笔记·单片机·嵌入式硬件·学习·pcb工艺·pcb