自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 条款04 确定对象被使用前已经初始化

参考这句C++: , 在某些语境下, x 是会被初始化为 0 的, 但是某些语境下并不能保证:有的时候, t 会将内部的 x 和 y 进行初始化, 有的时候又不会.读取没有初始化的变量会导致一些奇怪的行为, 这些行为是未被定义的. 比如指针没有初始化, 他或许不会初始化为 , 当你去访问这个地址时, 可能就导致了未知的错误和让人非常不愉快的调试出现. 现在我们有了一个规则: 读取未被初始化的变量, 结果是未知的.这是一个无法决定的事情, 相当于程序员把自己编写的程序的命运交给编译器. 其实有一个非常好

2023-04-30 22:44:52 207 1

原创 Effective C++读书笔记(3) 条款03 尽可能使用const

​ 解决方法可以是使用一个标记位判断是否有效, 但是这种有效也是会在 const 接口函数中改变的, 所以并不可以被坚持要 bitwise constness 的编译器同意. 这时可以利用 C++ 的一个和 const 相关的摆动场 mutable, mutable 会告诉编译器这个成员是 const 但是, 他还是有可能会被改动, 所以编译器会进行放行.​ const最具威力的用法是和函数声明结合, 在一个函数声明中可以和函数返回值, 各参数值, 函数自身(如果是成员函数的话)产生关联.

2023-04-24 23:30:49 174

原创 Effective C++读书笔记(2) 条款02 尽量用const, enum, inline 代替 #define

​ 此时, 有些编译器就会(错误地)报出编译错误, 认为必须要知道初始值, 也就是必须要知道数组开了多大. 我们来分析一下为什么会这样, #define 的处理在预处理阶段, 编译器工作在预处理后, 代表如果粗暴替换了 30, 那么编译器会很明显地知道需要开多大, 而如果是一个变量, 那么就认为不知道要开多大了. 我认为, 这样做不正确, 这样就导致了, 我们没办法去让程序自己根据情况去开多大, 而是必须要提前设置好.这里还有一些问题, 你是否认为, x 和 num 在类内都是被定义式定义的?

2023-04-20 18:16:54 161

原创 Effective c++读书笔记(1) 条款01 视C++为一个语言联邦

​ 而 C++ 的诞生, 为 C 引入了类的用法, 在最开始的时候, C++ 就是一种有着类的 C 语言, 但是当之后这门语言逐渐成熟时, 它也变得更加的活跃, 更大胆, 更冒险, 开始接受各种不同的观念. 现在的 C++ 其实已经很难讲就是单纯一门有着类的 C 语言了, 尤其是模板(template)和STL的引入, 几乎把我们带到了一个全新的设计和思考方式.​ 其实使用 C++ 就可以认为是在上面几种次语言进行切换, 当理解了四个次语言后, 对于 C++ 的理解就会更简单.也反映了这个血缘关系.

2023-04-20 18:14:26 278

原创 Effective c++阅读笔记(0) 序章

​ “c++程序员可以分成两类,读过effective c++的和没读过的。”世界顶级c++大师scott meyers这部成名之作,与这句话一道在全球无数读者间广为传颂。几乎所有c++书籍推荐名单上﹐《effective c++:改善程序与设计的55个具体做法:第3版》都会位列三甲。作者高超的技术把握力、独特的视角﹑诙谐轻松的写作风格﹑独具匠心的内容组织﹐都受到极大的推崇和仿效。​ 对于国外技术图书,选择翻译版还是影印版,常让人陷入两难。

2023-04-20 18:13:15 78

原创 C++的map介绍

​ 在数据结构的初级阶段, 我们使用了如: vector, list, deque这样的. 之所以为序列式容器, 是因为他们的底层是线性序列的数据结构, 如我们讲到的deque, 底层就是分段的连续线性结构.​ 那么说明时候关联式容器呢?关联式同样也是存储数据的, 只不过他不是存放单一的数据, 而是存放的键值对. 这个和Python的字典是一样的.

2023-04-20 18:12:38 130

原创 C++的map介绍

C++的map介绍关联式容器​ 在数据结构的初级阶段, 我们使用了如: vector, list, deque这样的序列式容器. 之所以为序列式容器, 是因为他们的底层是线性序列的数据结构, 如我们讲到的deque, 底层就是分段的连续线性结构.​ 那么说明时候关联式容器呢? 关联式同样也是存储数据的, 只不过他不是存放单一的数据, 而是存放的键值对. 这个和Python的字典是一样的. 这样的容器通常在数据检索的时候效率很高, 比序列式容器的检索快很多.键值对​ 用来表示具有一一对应关系的

2023-04-03 22:19:27 93

原创 CPP的Queue模拟实现

​ 列可以想象成一种特殊的栈,我们在前面提到,栈遵循的原则是后进先出,列遵循的原则则是先进先出。列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列。进行插入操作的一端称为队尾。出队列:进行删除操作的一端称为队头。

2023-04-03 19:57:54 115

原创 CPP的Stack模拟实现

CPP的Stack模拟实现

2023-03-29 11:34:55 145

原创 剑指offer刷题日记(1)

offer09;offer30;

2023-03-22 11:34:11 47

原创 学习C/C++系列(10)C/C++内存管理

C/C++内存管理基本概念

2023-02-03 22:14:49 131

原创 学习C/C++系列(9)C++类的6个默认函数

C++类的6个默认成员函数

2022-05-21 13:55:39 666 2

原创 学习C/C++系列(8)C++的一些基础概念

C++的一些基础概念:1.命名空间 2.输入输出 3.缺省参数 4.函数重载 5.引用 6.内联函数 7.auto关键字 8.基于范围的for循环 9.空指针nullptr

2022-05-20 20:50:43 265

原创 解决谷歌浏览器你的时钟快了和证书问题

解决你的时钟快了和证书问题

2022-05-09 12:14:00 17688 3

原创 学习C/C++系列(7)几种常见的排序算法(c语言实现)

这个小节来介绍一下下面几种常见常用的排序算法。和一些动图。

2022-04-24 18:39:45 1351

原创 学习C/C++系列(6)二叉树的链式存储及一些与二叉树有关的编程题

二叉链及一些编程题

2022-04-21 23:04:09 1643

原创 学习C/C++系列(5)二叉树的顺序存储及堆排序

二叉树的顺序存储与堆排序

2022-04-13 19:22:19 700 1

原创 学习C/C++系列(3)树

树是数据结构中的一个重要结构

2022-04-07 16:42:03 289

原创 学习C/C++系列(3)列

列的含义与实现

2022-03-27 14:04:52 1337

原创 学习C/C++语言系列(2)栈

对栈的分析与实现,和对括号匹配问题的思考和解决。

2022-03-26 16:25:08 928

原创 学习C/C++语言系列(1)双向循环带哨兵位链表

虽然双向循环比单链表和循序表结构要复杂,但在我目前看来,它比单链表,顺序表都要好用,都更实用。所以我想在单链表和顺序表之前先讲解一下我学到的双向循环带哨兵位链表。首先来讲一讲什么是哨兵位。如图,哨兵位其实是一个在头节点之前的节点,这个节点并不存放有效值,只存放头节点的地址和尾节点的地址。哨兵位为什么要有哨兵位呢? 1.对于一个已经创建和初始化的链表来讲,可以没有数据,即头节点,尾节点等,但是不能没有哨兵位,...

2022-03-24 15:27:04 2510

原创 C语言的编译和链接

一个.c源文件是如何经过处理变成可执行的.exe文件?这其中经过了编译和链接两个大过程。总的来讲,就是每个源文件经过编译后生成对应地目标文件,然后所有的目标文件和所引用的标准库链接,形成了.exe文件。具体是怎样,我来讲一讲。1.编译a.预处理此时.c文件进入预处理阶段,执行预处理命令。比如#define,#undef,(#ifdef,#endif),#error,#line等等。预处理结束后,将生成.i文件。b.编译此时.i文件进入编译阶段,此时编译器对.i文件进行语法分析,词法分

2022-02-26 14:54:15 1281

原创 C语言文件操作

C语言定义了一种结构体,这个结构体用于记录打开的文件的信息。当对文件进行打开操作时,编译器会在内存上找一块空间,用于存放文件的信息。在对文件进行操作时,我们需要提供被操作文件的信息,就是一个FILE* 的指针,指向这个结构体。struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; ...

2022-02-23 16:45:34 906

原创 c语言str函数

strlen:用于求字符串长度,从首字符开始,到'\0'结束,'\0'不计入总长度。函数实现:size_t my_strlen(const char* ptr){ assert(ptr); const char* ptx = ptr; while (*(++ptx)); return (size_t)(ptx - ptr);}strcmp:用于比较两个字符串大小,注意大小并不是指字符串长度,而是从第一个字符开始比较,比较字符的大小。该函数返回的是一个int值,不同编译器,返

2022-02-13 23:23:44 1829

原创 c语言内存函数

c语言有操作内存的函数,分别为:malloc,realloc,calloc,free。为什么要有内存函数?从个人的感受来讲,在开发一个通讯录时,每个人的通讯录都是不一样的,这就很难确定需要给结构体数组创建多大的内存。如果不使用内存函数,那么就是简单粗暴地将结构体数组设成非常大,这很难不浪费内存。malloc:void* malloc (size_t size);1.malloc函数负责向内存申请一块连续的空间,如果申请成功,则返回空间的地址,如果申请失败,则返回NULL。2.由于不

2022-02-13 22:31:50 1167

原创 浅谈C语言的mem系列函数

C语言的的mem函数使用可以说是非常频繁的。下面我对自己所学的mem系列函数做一个小总结。1.memchrmemchr的函数声明:void *memchr(const void *str, int c, size_t n);作用:memchr函数从str位置后的n个位置开始寻找,寻找第一个和c相同的字符。如果成功,memchr函数返回一个指向该字符位置的指针,如果没有没有找到指定字符,则返回NULL。实例:#include <stdio.h>#includ.

2022-01-30 20:57:12 1844

原创 c语言实现一个密码管理器(更新中)

作为电脑爱好者,会经常注册各种网站的账号,但是考虑到隐私的可能泄露,不喜欢把密码托管给浏览器,于是经常忘记各种密码。饱受折磨后,我决定用学的一点点c语言知识写一个密码管理器。 在写之前我希望它目前可以实现以下几个功能: 1.能够写入新密码,并把写入密码时的时间和日期一并存入。 2.能够查找密码,当找不到完全符合特征的账号时,能够提示我最相似的账号。 3.能够修改某个账号类型的密码,当修改时,将修改时的时间也进行同步。、 4.存储的数据分为四个部分,第一个是账号类型,如:...

2021-12-11 22:09:50 1252 1

原创 c语言当中的桶排序

当我们在处理c语言中的超大数据去重时,程序的运行效率会非常低,运行内存会非常大。 如这个题目,后台给出十分巨大的数据量,如果我们写普通的计数和排序函数是没有能力处理这些数据的,所以我们需要找到一个更强大的思路。 我们正常的方法是,创建一个数组,将每个元素都存放起来,但这样会导致数组非常大。于是我们就换一个想法,用下标去存放数据,让元素内容去存放这个小标出现的个数,就轻松解决了。代码如下。#define _CRT_SECURE_NO_WARNINGS...

2021-11-27 12:55:07 600

原创 浅谈c语言中的部分数据存储

1.整形在内存中的存储 对于c语言中的整形,我们都知道它是占有4个字节,32个比特位,但是一个整形是怎么在这32个比特位中存储的呢? 首先我们需要了解原码,反码,补码的概念。在计算机的内存中,大部分数据存放的都是补码。三者的计算关系是:原码为原数值的二进制,反码为原码对应数据类型的符号位不变,其他位取反,补码为反码加1。其中正数的原反补是相同的,负数才需要进行以上的计算。为什么会存在这三个概念,这是因为计算机的cpu只有加法计算器,没有减法...

2021-11-27 11:09:43 297

原创 C语言实现扫雷

扫雷是一个非常经典地小游戏。今天我用c语言来实现它。 首先明确扫雷地思路: 1.用一个二维数组来存放雷的位置(arr2),用另一个二维数组来存放棋盘(arr1)。 2.我输入arr1中的某个位置坐标,计算机去计算这个位置周围一圈的雷数,并把这个这个点打印成雷数。如果是0,则打印成空白,并将周围一圈的点作为一个新的位置点,去计算,这样可以实现拓展空白的功能。那我要完成这么多,就需要实现这几个函数:1.打印函数,打印棋盘。2.埋雷函数,计算机随机埋雷。3.接收指令函数,让计算机明白我是...

2021-11-11 16:08:52 489 2

原创 c语言实现五子棋

五子棋是一个非常经典的游戏,今天我试着用c语言来写,可以自定义多少个子连在一起算是胜利,自定义棋盘大小,不足的是AI只能下随机,没有一定的分析棋盘能力。 首先理清楚思路,我希望程序能先打印棋盘,然后让我下棋,之后判断下棋位置的合法性(不合法则提示我重新下),然后判断玩家是否胜利,接着判断平局。机器下则是运用随机数,别的步骤是一样的。 思路理清开始写代码,先写一个简单的打印菜单;void menu(){ printf("--------------------------------...

2021-11-08 22:24:40 5894

原创 2021-10-16 初始编程

RoseIsblue,一个开始学习编程的人学到后面能够自己写一些小程序,能解决问题,或者和别人有效的合作去写一些小程序如何学习,理论和实践相结合,多学多敲时间方面,一周16个小时左右还没有想过进公司,现在只希望把基础搞扎实...

2021-10-16 10:14:41 71

空空如也

空空如也

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

TA关注的人

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