- 博客(28)
- 收藏
- 关注
原创 搞定 list 不用愁!一文掌握链表容器的常用操作,打通 C++ 容器学习 “第二关”
前面我们学习了模板参数和vector , string 现在再看list的模板参数想必也已经有了一定的理解了,从参数列表我们不难看出第一个模板参数 T ,决定了list存储的数据类型,而第二个这里我们暂时不做介绍,后续将会为大家介绍这个参数的作用。list是 C++ 标准模板库(STL)中的序列容器,基于双向链表实现。这里可能有的小伙伴不知道什么是双向链表,我简单科普一下双向链表的基本概念数据域:存储节点的值。前驱指针(prev):指向前一个节点的地址。后继指针(next):指向后一个节点的地址。
2025-10-13 15:32:25
1015
原创 进阶 vector 学习:搞定迭代器失效难题,亲手实现核心逻辑
本文深入探讨了vector容器的实现原理与迭代器失效问题。主要内容包括:1. vector的模拟实现,详细解析了三指针管理机制、常用接口实现(如reserve/push_back等)及构造函数设计;2. 重点分析了insert/erase操作导致的迭代器失效场景及底层原因,提出规避方法;3. 强调扩容操作会重新分配内存,使所有迭代器失效的安全隐患。通过完整代码示例,帮助开发者从"使用者"进阶为"设计者",深入理解vector内部机制,编写更健壮的代码。文章最后预告了下一期将对比分析list容器的特性。
2025-09-30 13:27:55
584
原创 《C++ 内存管理新手指南:从堆和栈开始,学会正确用 new/delete》
本文介绍了C++内存管理的基础知识,重点讲解了new和delete操作符的使用方法及其底层原理。文章首先回顾了C语言的内存管理方式,通过对比malloc/free与new/delete的区别,引出C++特有的内存管理机制。在讲解new/delete时,详细分析了内置类型和自定义类型的不同处理方式,特别强调了new会调用构造函数、delete会调用析构函数的特点。文章还深入探讨了operator new和operator delete的底层实现原理,指出它们最终仍是通过malloc和free来完成内存操作
2025-09-26 20:32:42
1107
原创 C++ 容器学习系列|vector 核心知识全解析,铺垫下一期模拟实现
对于STL库的学习我们从前面的string就知道,接触一个新容器第一件事就是去官网上查文档,这是快速了解一个容器最快最好的方法,废话不多说,让我们一起来看看今天的干货吧。这里给大家总结一下,这里说的大致就是以下几点基本性质vector是序列容器,类似数组但大小可动态变化,元素存储连续,能像数组一样通过指针偏移高效访问元素,且存储由容器自动管理。内部实现。
2025-09-24 19:41:58
728
原创 从 “用 string” 到 “造 string”:手把手带你模拟实现 C++ string 类
size()关注有效内容,capacity()关注内存分配。模拟实现仅展示逻辑,实际标准库通过成员变量高效管理。扩容策略影响capacity()的返回值,避免频繁重新分配内存。内存管理所有动态分配需配对释放。拷贝时深拷贝而非浅拷贝。边界条件检查pos有效性。处理空字符串和nullptr输入。\0终止符任何修改长度的操作需保证。扩容策略避免频繁扩容,推荐2倍增长。const正确性为const对象提供const版本接口。
2025-09-21 18:00:00
1663
原创 《从构造到析构:一份超详细的 string 模拟实现教程,新手也能看懂》
本文摘要:本文系统讲解了C++标准库中string类的核心概念与使用方法。首先介绍了string类的基本构造方式,包括默认构造、字符串初始化、字符填充和拷贝构造。接着详细解析了容量操作相关接口(size/length、capacity、resize/reserve等)和访问遍历方法(operator[]、迭代器、范围for循环)。重点阐述了修改操作(push_back、append、operator+=)和实用功能(c_str、find/substr)。最后介绍了字符串连接、流操作、比较运算等非成员函数。
2025-09-19 20:11:59
606
原创 《C++ 开发者必看:STL 库是什么?先从泛型函数学起》
STL全称(Standard Template Library,标准模板库):它是C++标准库的重要组成部分,不仅是一个可复用的组件库,它同时也是一个包罗数据结构与算法框架的软件架构。这是STL的定义,这么看起来大家肯定会感到有一点抽象,这里可以给大家举一个生动形象的例子来帮助大家理解STL库为什么影响这么深远。大家在学完C语言之后,有些小伙伴可能会去学数据结构,也有可能是直接是开始学习数据结构,没有接触的不要慌,这里给大家简单介绍一下何为数据结构。
2025-09-17 21:03:31
924
原创 一文读懂 Linux 权限:为什么 “Permission denied” 总找你麻烦?
chown(Change Owner)是 Linux/Unix 系统中用于修改文件或目录所有者和所属组的命令。通过该命令可以调整资源的归属权限,确保文件系统安全性。chgrp(Change Group)是 Linux/Unix 系统中用于更改文件或目录所属组的命令。通过该命令,可以修改文件或目录的组所有权,前提是用户具有足够的权限(通常是文件所有者或 root 用户)。权限掩码(umask)是操作系统中用于设置新建文件或目录默认权限的机制。它通过屏蔽(mask)某些权限位,决定用户创建文件时的初始权限。
2025-07-24 18:00:00
1282
原创 Linux 系统基础指令入门:从 “小白” 到 “上手” 的必备指南
Hello,大家下午好本篇博客作为Linux的第一篇博客将为大家介绍Linux系统的一些基础指令方便大家快速上手Linux系统,本篇博客将主要围绕Linux的基础指令展开,下期将带领大家了解Linxu的权限,好的废话不多说让我们开始探索神奇的Linux系统的吧!
2025-07-18 17:03:44
711
原创 C++ 类与对象入门:从语法规则到编程思维的转变
当小伙伴们刚开始接触到类与对象时肯定好奇类是什么?对象又是什么?在解答这个问题之前我们需要知道C++它独特与C语言的地方首先给大家看一段代码//类class Apublic:A():_a(20),_b(10)cout << "默认构造" << endl;_a = a._a;_b = a._b;int _b;//结构体struct Aaint _a;int _b;
2025-07-16 17:04:07
745
原创 《为什么说引用和内联函数是C++性能优化的秘密武器?》
在正式与大家介绍前很多人对引用这个概念肯定很好奇,引用是什么东西?难道和语文中的引用一样或者和我们写作文时引用某某文人的一句话?小编在刚接触到这一知识点时也有着这些疑问,下面给大家举个例子,水浒传想必大家都看过,水浒传中的李逵,想必大家都知道,在水浒传中宋江叫“铁牛”,江湖人称“黑旋风”;林冲,外号豹子头;通过这个例子大家想必大家已经有比较清晰的认识了,引用通俗易懂来说就是取别名,引用它不是定义一个新的变量,而是给变量取“别名”,编译器不会为引用变量开辟内存空间,它和它的引用对象共用同一块内存空间;
2025-07-13 21:18:53
890
原创 缺省参数是 “备胎”,函数重载”?C++ 这俩特性有点意思
C++中的输入(cin)与输出(cout)它与C语言中的printf 与 scanf一样都是标准库函数,C语言是包含在头文件<stdio.h>中,而C++同样也是包含在头文件中上一期讲解过C++中头文件是不需要后缀.h的,C++中的标准输入与输出是包含在头文件<iostream>中的,这里的iostream是“”的缩写,下面让我们来看看吧<iostream> 是 Input Output Stream 的缩写,是标准的输⼊、输出流库,定义了标准的输⼊、输出对象。
2025-04-22 18:00:00
1475
原创 《为什么需要你C++命名空间?基础用法全解析》
上文讲到C++为了解决命名冲突的问题引入了命名空间(namespace)这一关键字定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/
2025-04-17 18:45:00
679
原创 《编程必备:从零开始理解结构体的力量》(初阶)
在讲述之前,大家肯定疑惑为什么要有结构体这个东西,它被创造出来是来做什么的,我在初学结构体时也有过这样的疑惑,好奇它的作用是什么,直到我进入实验室,看到卡丁车的源码时发现了结构体,也是从那时候初识结构体,了解到结构体的基本作用。
2025-04-07 18:00:00
820
2
原创 指针的魔力:C语言高效编程的秘密武器(下)
const这个关键词想必大家都不陌生,比如“const修饰的常变量”下面给大家看一段代码,帮助大家理解const的功能,在这之前先看看const的定义吧!const是constant的缩写,意思是“恒定不变的”。它是定义只读变量的关键字,或者说是定义常变量的关键字。使用const修饰的变量,其值在初始化后不能被修改。这里的const可以理解为将一个变量给固定住了,不让你修改只让你看,可以理解为const修饰的变量是生活中的“白月光”,只能看却碰不到。下面来看看它在代码中的实例吧,相信大家看完会有新的理解。
2025-03-31 16:30:00
794
2
原创 指针的魔力:C语言高效编程的秘密武器(上)
大家不用担心,本期我们将深入剖析C语言指针,指针和结构体作为C语言的重要部分,当然也是干货满满,指针部分将会用三篇博客来为大家进行介绍,下面正片开始。
2025-03-22 18:34:37
858
1
原创 手把手教你实现strcat
strcat函数是C语言中的库函数之一,它包含在头文件 <string.h>,它是字符串追加函数,他的作用是将源字符串的内容加到目标字符串的后面,从目标字符串末尾的'\0'开始追加,一个字符一个字符进行追加,它一般用于两个字符串的合并。具体的可以参考cplusplus官网kw=strcat。
2025-03-10 09:25:02
679
原创 从形参到递归,C语言函数知识点深度剖析
这里的自定义想必大家并不陌生,玩游戏常常会遇到自定义模式,这里的自定义就是指,自己定义的函数,它独立在库函数之外,是根据自己当前项目的需求自己创建的函数,一般用于行使某个特定的功能例如上面的Add函数这两篇博客中的【C语言】手撕strlen!三种方法源码对比 及git代码链接-优快云博客手撕strcpy(字符串复制)函数 + 代码示例+git源码链接-优快云博客两个模拟实现的函数都属于是自定义函数。这里采访一下大家在写函数的时候习惯把函数写在主函数的上面还是下面,或者是放在另一个头文件中。
2025-03-06 10:51:31
939
原创 手撕strcpy(字符串复制)函数 + 代码示例+git源码链接
strcpy”字符串复制函数(string copy),顾名思义就是把字符串复制下来然后给到另一个变量或者数组中,可以理解为将某一字符串拷贝给另一个数组或者字符串中。C语言中明确指明了这个函数是将源头(“source”)字符串复制到目标(“destination”)字符串中,包括终止符(‘\0’)。具体的可参考官网有具体介绍。
2025-02-27 23:30:20
1196
1
原创 【C语言】手撕strlen!三种方法源码对比 及git代码链接
strlen函数是C语言的库函数之一,常常用来计算字符串的长度,统计字符串的长度,从上图可以看出strlen函数会返回size_t类型的数据,接受const char*类型的指针变量)strlen函数会一直统计个数一直统计到空字符‘\0’前一个字符,到空字符就停止计数从上图可以看出strlen函数的使用需要包含一个头文件 <string.h>,具体的可以参考下面的链接。
2025-02-25 23:38:02
570
1
原创 c语言数组总结(二维数组/多维数组)
二维数组相较一维数组可以将其理解为一维数组的升格版,相较一维数组,二维数组它在用法上更为广阔,对应的初始化赋值也相较一维数组更为复杂,二维数组常常用在类似矩阵等的题目之中,如果大家尝试过自主做一个“五子棋”,“三子棋”,“扫雷”这些类似棋盘游戏的游戏就一定能体会到二维数组甚至多维数组在这中间的重要性,下面让我们来一起看看二维数组的一些常规用法吧!
2025-02-25 15:35:13
1690
1
原创 C语言数组内存模型全解析
数组作为C语言中比较重要的语法之一,它的作用不容小觑,在C语言中数组常常用来存储数据,根据它存储数据的类型我们可以将其分为,(整形数组,浮点型数组,字符型数组,指针数组........)那么该如何区分数组的类型呢?下面给大家介绍数组的基本结构。
2025-02-24 22:29:54
991
1
原创 分支语句总结
if语句在c语言中是一种广泛应用的分支语句,相较switch语句它应用的范围更广,它有几种常见形式。可以用来解决多分支问题如几种情况例如BC49-判断2个数的大小这里就运用到了if的多分支。
2025-01-05 15:26:04
404
1
原创 通过气泡法将10个数按从小到大顺序输出
本题原理是通过气泡法(即从第一项起依次与后面几项比较大小)将十个数按从小到大的顺序输出。运用到的知识点:函数,循环的嵌套,数组。
2025-01-05 12:58:47
235
原创 探究scanf的返回值
这里以scanf的返回值作为循环条件,实现了随时可停的操作,相较传统的设置变量,以变量作为循环条件,这样做可以一定程度上提高运行速度。KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。当第一个数输入(ctrl + z)或两个数均为(CTRL+ z)时会返回-1也就是(EOF)多组输入,一个整数(1~100),表示线段长度,即“*”的数量。当输入第一个数与占位符相同时会返回1,同理两个数相同返回2。针对每行输入,输出占一行,用“*”组成的对应长度的线段。
2025-01-05 11:41:31
669
原创 初入优快云社区,自身的介绍与目标
我是一名编程初学者,在学习过程中遇到很多问题都会来优快云这个社区寻求答案,希望加入这个社区学习更多的技能,这个社区总是可以帮我解决很多问题,得到很多解决问题的新思路。
2025-01-04 22:07:25
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅