子亦半截诗
码龄3年
关注
提问 私信
  • 博客:31,461
    社区:13
    动态:135
    31,609
    总访问量
  • 27
    原创
  • 54,823
    排名
  • 857
    粉丝
  • 7
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:安徽省
  • 加入CSDN时间: 2021-11-15
博客简介:

C++领域内容分享

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    654
    当月
    2
个人成就
  • 获得433次点赞
  • 内容获得475次评论
  • 获得339次收藏
创作历程
  • 6篇
    2024年
  • 11篇
    2023年
  • 10篇
    2022年
成就勋章
TA的专栏
  • 动态规划
  • qt
  • C++
    13篇
  • STL
    5篇
  • C++11
    1篇
  • Linux
    3篇
  • 数据结构C语言
    1篇
  • C语言
    9篇
兴趣领域 设置
  • 编程语言
    javac++c语言
  • 开发工具
    ide
  • 数据结构与算法
    数据结构线性回归链表贪心算法动态规划排序算法逻辑回归宽度优先广度优先深度优先霍夫曼树哈希算法
TA的社区
  • C/C++开发者社区
    662 成员 10 内容
    创建者
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【Linux杂货铺】3.程序地址空间

fork()函数在调用的时候子如果是子进程则返回0,如果是父进程则返回子进程的pid,在代码中我们分别在子进程和父进程读取全局变量g_val的时候居然出现了俩个不同的值。如下: 这个时候我们发现明明读取的地址相同为什么会读出俩个不同的值呢?既然读出了俩个值,说明这俩个值存在不同空间里,定然不可能地址相同,唯一的解释就是这个地址不是真实的地址。事实也正是这样,这里读取到的地址是虚拟地址,虚拟地址空间也就是程序地址空间的产物,接下来我们来看程序地址空间,以及虚拟地址的实现机制。
原创
发布博客 2024.07.13 ·
872 阅读 ·
7 点赞 ·
0 评论 ·
11 收藏

【C++精华铺】13.STL stack 和 STL queue 模拟实现

STL (Standard Template Library)是C++标准库提供的一套模板类和算法的集合,其中包含了许多常用的数据结构和算法,方便程序员使用和扩展。STL中的stack和queue是两种常用的容器适配器,可以通过使用不同的容器作为底层实现来提供不同的行为。STL提供的stack和queue适配器默认使用deque(双端队列)作为底层容器,也可以使用vector或list作为底层容器,根据实际需求选择不同的底层容器以满足性能和功能要求。这里我们用vector和queue作为底层容器。
原创
发布博客 2024.07.12 ·
529 阅读 ·
7 点赞 ·
3 评论 ·
6 收藏

【C++精华铺】12.STL list模拟实现

STL (Standard Template Library)是C++标准库中的一个重要组件,提供了许多通用的数据结构和算法。其中,STL list是一种带头双向链表容器,可以存储任意类型的元素。list的特点包括:双向性:list中的元素可以根据需要在前向和后向方向上进行遍历和访问。动态大小:list的大小可以根据需要动态增长和收缩,不像数组需要预先定义大小。高效的插入和删除:在list中插入或删除元素的操作非常高效,时间复杂度为常数时间。
原创
发布博客 2024.07.12 ·
1595 阅读 ·
17 点赞 ·
4 评论 ·
11 收藏

【Linux杂货铺】2.进程优先级

进程优先级是操作系统中用于确定进程调度顺序的一个指标。每个进程都会被分配一个优先级,优先级较高的进程会在调度时优先被执行。进程优先级的设定通常根据进程的重要性、紧急程度、资源需求等因素来确定。操作系统会根据进程的优先级来决定进程的调度顺序,通常会优先执行优先级较高的进程,以提高系统的整体性能和响应速度。不同的操作系统可能有不同的进程调度算法和优先级范围,但总体原则是根据进程优先级来安排进程的执行顺序。
原创
发布博客 2024.07.12 ·
253 阅读 ·
9 点赞 ·
2 评论 ·
6 收藏

【Linux杂货铺】1.环境变量

每一个可执行程序都会收到一张环境变量表,环境变量表是一个字符指针数组。
原创
发布博客 2024.07.11 ·
382 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

【C++精华铺】11.STL vector模拟实现

STL(Standard Template Library)是C++的标准库之一,提供了一系列的模板类和函数,用于实现常用的数据结构和算法。其中,STL的vector是一个动态数组,可以根据需要自动调整大小。vector可以存储任意类型的对象,并且可以在尾部插入和删除元素,还可以随机访问和修改任意位置的元素。它的实现使用了动态内存分配,因此在插入和删除元素时,可能会触发内存重新分配和数据拷贝,导致效率降低。vector提供了一系列的成员函数和操作符,用于操作和访问其中的元素。
原创
发布博客 2024.07.11 ·
1012 阅读 ·
15 点赞 ·
3 评论 ·
7 收藏

【C++精华铺】10.STL string模拟实现

STL(标准模板库)是一个C++标准库,其中包括一些通用的算法、容器和函数对象。STL的容器是C++ STL库的重要组成部分,它们提供了一种方便的方式来管理同类型的对象。其中,STLstring是一种常用的字符串类型。STLstring是一个类,它封装了字符串的操作,并提供了一组成员函数。STLstring的实现使用了动态的内存分配技术,这意味着字符串的大小可以随时改变。STLstring还提供了一些高效的成员函数,例如substr、find、replace等,这些函数可以对字符串进行快速的操作。
原创
发布博客 2023.09.07 ·
2022 阅读 ·
34 点赞 ·
64 评论 ·
30 收藏

【C++精华铺】9.STL string

STL(Standard Template Library)库中的string类是一个字符串类,它提供了管理字符串的各种方法和功能。它是一个可变长度的字符序列,可以自动调整自身大小以适应字符串的长度变化。在之前我们操作字符串都是通过自己去实现相关的函数来进行操作,而且稍不留神就会内存泄漏,在C++中我们更倾向于使用string类来完成和字符串相关的操作。使用string类相比于使用C语言的字符串有以下优点:更加安全:C语言的字符串没有自带长度信息,容易造成内存越界等安全问题。
原创
发布博客 2023.08.25 ·
1507 阅读 ·
46 点赞 ·
75 评论 ·
38 收藏

【C++精华铺】8.C++模板初阶

什么是泛型编程?泛型编程是避免使用某种具体类型而去使用某种通用类型来进行程序编写的方式,依次来复用某段代码而避免大规模功能相似重复冗余的代码。下面的代码如果想用泛型编程该如何实现。马云有次说了这么一句话:“世界是懒人创造的,懒不是傻懒,如果你想少干,就要想出懒的方法。要懒出风格,懒出境界。”C++必然也是有风格有境界的,所以C++中设计了实现了泛型编程。
原创
发布博客 2023.08.17 ·
1583 阅读 ·
45 点赞 ·
76 评论 ·
36 收藏

【C++精华铺】7.C++内存管理

C++继承了C语言的内存管理方式,但是C语言的内存管理方式在C++中显得心有余而力不足,在涉及内存管理的自定义类型的内存释放上就显得无能为力。C++引入了new/delete和new T[]/delete[]的内存管理方式。
原创
发布博客 2023.08.15 ·
899 阅读 ·
38 点赞 ·
49 评论 ·
31 收藏

【C++精华铺】6.C++类和对象(下)类与对象的知识补充及编译器优化

构造函数的初始化列表及其行为、static成员(函数,变量)、友元(函数,类)、内部类、匿名对象、对象拷贝时的编译器优化
原创
发布博客 2023.08.12 ·
826 阅读 ·
31 点赞 ·
33 评论 ·
28 收藏

【C++精华铺】5.C++类和对象(中)类的六个默认成员函数

我们想到空类的时候肯定想到的是里面什么都没有的类称之为空类,但是事实却并非如此。当一个类里面什么都不写的时候编译器会默认生成六个默认成员函数来完成一个类的基本功能。构造函数:对象初始化工作。析构函数:空间清理工作。拷贝构造和赋值运算符重载:对象的拷贝复制工作。取地址和const取地址重载:一般很少自己实现,除非需要给用户返回指定的特殊的地址。
原创
发布博客 2023.08.10 ·
1259 阅读 ·
27 点赞 ·
30 评论 ·
21 收藏

【C++精华铺】4.C++类和对象(上)面向对象、类、this指针

class为定义类的关键字,{}中的内容为类的类体,里面定义的内容称之为成员,类中的变量称之为类的属性或者类的成员变量,ClassName为类名,并且大括号后面的分号”;“一定不能省略。//类体类有俩种定义方式:声明和定义全部放在类体中(成员函数在类体中定义,编译器可能会将其作为内联函数处理)class Datepublic://private:int _year;int _month;int _day;类声明放在.h文件中,成员函数定义在.cpp文件中(成员函数前要加上。
原创
发布博客 2023.08.06 ·
289 阅读 ·
23 点赞 ·
21 评论 ·
20 收藏

【C++精华铺】3.C++入门 引用(const)、内联函数

以值作为参数或者返回类型,在传参和返回的期间,变量不会直接传递实参或返回变量本身,而传递的是实参或者变量的一份临时拷贝,如果需要拷贝的类型特别大的时候,效率是极低的。常引用就是const关键字修饰的引用,但是我们在使用常引用是会遇到各种报错,其实就是权限放大缩小的问题,所谓权限就是是否具有读或者写的权力,在C++中引用支持权限缩小但不支持权限放大。,与传统的定义变量不同,传统的定义变量是新开一份空间来存储数据,而引用则是给一个已经存在的空间起一个别名,它和引用的变量共用同一份空间。
原创
发布博客 2023.08.06 ·
411 阅读 ·
9 点赞 ·
8 评论 ·
9 收藏

【C++精华铺】2.C++入门 缺省参数、函数重载

含有缺省参数的函数在声明的时候要注意声明的时候定义和声明如果是分开的话缺省参数必须写在声明里。
原创
发布博客 2023.08.03 ·
134 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

【C++精华铺】1.C++入门 namespace命名空间、初识iostream标准流

c++命名空间和标准输入输出的介绍
原创
发布博客 2023.08.03 ·
149 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

【C++11】 统一的列表初始化( {}初始化 )

c++11为了统一初始化方式引入了列表初始化方式,也就是使用{}对变量或者结构体变量等进行初始化。本文会以简单的语言介绍c++11的列表初始化方式和std::initializer_list。
原创
发布博客 2023.07.22 ·
392 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

空间复杂度和时间复杂度

当我们在研究一个算法是不是一个优秀的算法时,我们应该如何去评判它。难道真的就是代码越短越好吗?比如下面的斐波那契数列就并不是一个很好的算法,虽然很简洁。当我们判断一个算法的好坏的时候,通常要从时间和空间俩个维度去衡量,也就是时间复杂度和空间复杂度。
原创
发布博客 2022.11.04 ·
301 阅读 ·
6 点赞 ·
6 评论 ·
4 收藏

指针函数和函数指针 函数指针数组 回调函数

我们经常使用的函数定义的方式是(类型名 标识符 (形参列表) {函数体})指针函数的定义其实也并无不同,我们定义的方式也是(类型名 标识符 (形参列表) {函数体})只不过使用的是指针类型。int* ret(int x,int y) {} 或者 int *ret(int x,int y) {}怎么去写看个人习惯,并无区别。这么看来其实也是比较简单,和普通函数的定义并没有什么大的区别,也就是多了一个* ,仅此而已。
原创
发布博客 2022.10.24 ·
310 阅读 ·
26 点赞 ·
37 评论 ·
7 收藏

指针数组和数组指针

指针数组其实就是存放指针的数组,数组中的每一个元素都指向一个地址。int* (类型名) p(变量名)[数组大小];//整形指针的数组//一级字符指针的数组//二级字符指针的数组在我们定义指针的时候,我们都是在变量名前面加上一个 * 号,数组指针也是类似的定义模式。int main(){//定义一个指向长度位10的整型数组的指针//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个//指针,指向一个数组,叫数组指针。
原创
发布博客 2022.10.18 ·
674 阅读 ·
11 点赞 ·
14 评论 ·
9 收藏
加载更多