- 博客(4)
- 收藏
- 关注
原创 C++ vector
本文介绍了C++ STL中vector容器的基本使用和实现原理。主要内容包括:1) vector的定义和迭代器使用方式;2) vector空间增长机制,不同编译器的扩容策略差异;3) reserve和resize的区别;4) vector的[]和at访问方式比较;5) 二维vector的实现原理;6) 迭代器失效问题及其原因分析,包括扩容导致的野指针和数据挪动引起的位置变化。文章通过代码示例展示了vector的各种操作方式,并深入分析了底层实现机制和常见问题。
2025-12-11 00:53:04
886
原创 双指针_移动零
当cur从左往右遍历时,这三个区间能保持原有的性质,当cur走到n的时候,待处理区间就消失了,只剩处理好的两个区间,得解。示例代码写的简洁,自己写的太复杂了,应该多精炼代码。int* (在数组中利用数组下标来充当指针)dest: destination 目的地。中最核心的一步,也就是数据划分这一步。cur:current 当前的,最近的。这类题可以称作数组划分或者数组分块。 1.遇到零元素:cur++两个指针将数组分为三个区间。
2025-10-15 09:26:19
1595
原创 C++引用使用
实际上,我们从反汇编的层面看,引用底层也是采用指针的形式实现的,并且也需要开辟空间,但我们从语法上认为引用不需要额外开辟空间。 C++中的引用就是给变量取别名,语法上说编译器不会为引用另外开辟空间,引用与原变量指向同一空间。 也可以给别名再取别名,指向的还是原来的那个变量,可以看出地址都是一样的。C++中指针与引用相辅相成,功能有重叠性,但各有自己的特点,互相不可替代。
2025-10-14 23:40:14
1155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2