自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 链表的初认识

链表的核心是节点 + 指针,通过指针串联零散内存,插入 / 删除效率高,访问效率低;手动实现链表需重点关注内存释放(析构函数)和边界条件(空链表、删除头节点);实际开发中优先使用 STL 的std::list,无需手动管理内存,接口丰富且高效。

2025-12-18 21:16:23 282

原创 结构体的初认识

重载==<<等运算符,让结构体支持 “类原生类型” 的运算(如比较、输出)。cpp运行int x;int y;// 重载 + 运算符:两个点相加// 重载 == 运算符:判断两个点是否相等// 重载 << 运算符:直接输出结构体(全局函数)return os;// 输出:(4, 6)cout << "p1 和 p2 相等" << endl;} else {cout << "p1 和 p2 不相等" << endl;// 执行此分支return 0;

2025-12-15 16:52:37 397

原创 迭代器的初认识

cpp运行// 1. 普通迭代器(可读可写)// 指向第一个元素(10)// 2. 常量迭代器(只读,不可修改元素)// cbegin() 返回const_iterator// 3. 反向迭代器(从尾到头遍历)// 指向最后一个元素(50)return 0;迭代器是 STL 的 “灵魂”,核心是为不同容器提供统一的访问接口。理解 “左闭右开” 的遍历范围;区分不同容器的迭代器类型(尤其是随机访问 vs 双向 / 前向);规避迭代器失效问题;结合auto。

2025-12-12 08:56:03 825

原创 string*的使用

string*必须指向已存在的string对象(避免野指针),常见初始化方式:cpp运行// 1. 定义string对象,指针指向它(最常用)// &取str的地址,赋值给string*指针// 2. 指针数组:存储多个string对象的地址(你代码中的核心场景)// 指针数组,每个元素是string*// 3. 动态分配string对象(较少用,需手动释放)// 堆上创建string对象,p2指向它return 0;string*

2025-12-11 17:25:09 245

原创 指针的初认识

c运行// 普通变量int a = 10;// 指针变量p:存储a的地址(&为取地址符)printf("变量a的值:%d\n", a);// 输出:10printf("变量a的地址:%p\n", &a);// 输出:0x7ffeefbff5c4(示例地址)printf("指针p的值(a的地址):%p\n", p);// 输出:0x7ffeefbff5c4printf("指针p指向的值(*p解引用):%d\n", *p);// 输出:10return 0;&a。

2025-12-10 22:58:12 371

原创 cin与cout的初认识

场景用法要点简单输出cout << 数据 << '\n'(优先用\n复杂格式化输出结合<iomanip>操纵符(fixedsetwleft等)简单输入(无空格)cin >> 变量(自动跳过空白字符)含空格的字符串输入getline(cin, 字符串),注意先清空换行符高频输入输出加优化效率输入错误处理用cin.fail()检查,重置状态,清空缓冲区cincout是 C++ 原生的输入输出方案,核心优势是类型安全(编译期检查)和可扩展性。

2025-12-09 22:09:57 783

原创 string的初认识

是 C++ 处理字符串的首选,核心优势是动态内存管理和丰富的成员方法。

2025-12-09 21:35:33 352

原创 for循环的认识与使用

/ 步长为2,输出0、2、4(跳步循环)i < 5;i += 2) {// 输出:0 2 4// 步长为-3,输出9、6、3(反向跳步)i >= 3;i -= 3) {// 输出:9 6 3int i = 0;// 省略初始化(i已提前定义)for (;i < 5;i++) {// 输出:0 1 2 3 4C++11 及以上标准中,for循环内定义的变量(如int i)作用域仅限于循环内,避免变量污染:cpp运行i < 3;i++) {// 合法:i在循环内可见。

2025-12-08 20:58:23 848

原创 指针的引用

指针的引用」是指针变量的别名—— 它不是指向变量的引用,而是指向「指针本身」的引用。类型*& 引用名 = 指针变量名;*&连写,明确是 “指针的引用”)类型语法核心作用适用场景普通指针T*操作指针指向的「目标变量」间接访问 / 修改目标数据指针的引用T*&操作「指针本身」(别名)修改指针指向、避免指针拷贝普通引用T&操作「变量本身」(别名)直接访问 / 修改变量(替代指针)想改「目标数据」→ 用普通指针(T*)或普通引用(T&想改「指针本身」→ 用指针的引用(T*&

2025-12-08 19:36:55 556

原创 vector容器的初认识

vector包含<vector>头文件;用合适的方式初始化vector;用[]at()访问元素,用pop_back()增删元素;用size()获取长度,无需手动释放内存。

2025-12-07 21:31:15 436

原创 动态数组的初认识

new int[n]→ 元素值是随机垃圾值(堆区未初始化);→ 所有元素初始化为 0(加括号触发零初始化);自定义初始化:需循环赋值(C++ 不支持直接初始化动态数组,需手动循环)。// 元素是随机值(比如 0xcccccccc)// 元素全为 0([0, 0, 0])// 自定义初始化:给前 3 个元素赋值 1、2、3i < 3;i++) {// 最终 arr2 = [1, 2, 3]特性动态数组(new[]静态数组(长度确定时机运行时(变量n编译时(常量,如 10)内存位置。

2025-12-07 21:02:25 531

原创 set的初认识

使用set必须包含头文件<set>,且需指定元素类型(如intstring// 简化写法,否则需写 std::set// 定义一个存储整数的 set(默认升序排序)set<int> s;默认set// 降序排列的 set// 输出:5 3 2 1set自动去重 + 自动升序排序。题目场景:统计不同元素个数 → 插入set后返回size()。时间复杂度:插入、查找、删除均为 O (log n),适合 n≤1e5 的场景(远超题目要求的 n≤1000)。

2025-12-05 21:53:02 660

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除