logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

优选算法——双指针专题3(快慢双指针)

一定会得到一个循环多操作一次,fast算两次,slow算一次。

文章图片
#算法#c++#学习
C++ vector容器底层深度剖析与模拟实现

C++ vector基于动态数组实现,通过三个指针管理内存。核心风险是迭代器失效:insert可能扩容使所有迭代器失效;erase使被删位置后迭代器失效,必须通过it=erase(it)接收返回值。采用2倍扩容策略,现代写法通过swap实现安全拷贝。连续存储支持高效随机访问,但需警惕迭代器失效这一主要陷阱。

文章图片
#开发语言#c++
手撕容器string(了解底层) 1

在C++中实现自定义string类深入体现了动态内存管理与面向对象编程的核心思想。通过封装char*指针及size、capacity成员,构建了字符串的完整功能体系。关键技术包括:构造函数处理空字符串初始化;运算符重载和迭代器提供遍历支持;reserve扩容采用成倍增长策略;插入操作需严格边界检查,特别注意size_t无符号特性风险。实现过程涵盖了const成员函数重载、深浅拷贝等关键概念,展现了

文章图片
#开发语言#c++#学习
手撕容器string(了解底层)2

本文是字符串类实现的后半部分,重点介绍了插入、删除、查找等核心功能的实现细节。通过指定位置插入字符串时处理容量不足和内存挪动,删除操作区分全删与部分删除的情况。查找功能支持字符和子串定位,拷贝构造与赋值操作确保深拷贝正确性。关系运算符重载基于strcmp实现字符串比较,输入输出运算符重载则通过缓冲机制高效处理流数据。整体实现了标准字符串类的关键功能。

文章图片
#开发语言#c++#学习
C++ vector容器详解:接口使用与底层原理初探

本文详解C++的vector容器:本质是顺序表即数组,核心讲接口使用与扩容等关键知识。构造方式含默认、填充、区间、拷贝及initializer_list(支持{ }直接初始化),附打印函数与调试示例。扩容用reserve(仅扩容)和resize(扩容+初始化),自动扩容通常1.5倍,手动扩容更高效。还涉及元素访问、插入删除,对比emplace_back与push_back差异,后者需实例化对象,前

文章图片
#c++#开发语言
dfs专题——二叉树的深搜1(计算布尔二叉树的值)

示例:居中的CSDN官网可点击超链接——《病隙碎笔》

文章图片
#算法#c++#学习
c++详解系列(引用&指针)

# 引用与指针总结引用是变量的别名,与被引用变量共享内存空间,定义时必须初始化且不可更改引用对象。引用主要用于传参和返回值,能减少拷贝提高效率。const引用可以限制访问权限,避免权限放大问题。引用相比指针更安全直接,但功能有限。指针是存储地址的变量,需要独立内存空间,可改变指向对象,功能更灵活但风险更高。引用和指针各有优势:引用更安全简洁,指针更灵活强大,二者互补共存于C++中,无法完全替代对方

文章图片
#c++#开发语言#学习
初学者关于c语言的内存函数的笔记

比较结果>0,前者大<0:后者大=0:一样大。和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是。函数是⽤来设置内存块的内容的,将内存中指定⻓度的空间设置为。⽐较从ptr1和ptr2指针指向的位置开始,向后的num个。比较的时候,内存中的内容被转化成。memmove的使⽤需要包含。memmove函数也是完成。的数据进⾏设置,也就是说以。

文章图片
#c语言
到底了