自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 6.条件判断

程序并不总是从头到尾执行相同的代码。条件判断可以根据表达式结果,决定执行哪一段代码。

2026-11-08 14:18:16 220

原创 5.赋值运算符

前面学过,单个等号 = 用来赋值。Python 还提供了复合赋值,让“根据旧值计算新值,再保存回变量”写得更简洁。

2026-11-08 14:14:19 123

原创 python 运算符与条件判断

0 的结果是 False,Python 不再计算右侧,所以不会发生除以零错误。对于 and,左边已经是 False,整体不可能再变成 True,因此右侧不会执行。对于 or,左边已经是 True,整体已经成立,因此右侧也不会执行。只要其中一个条件为 False,整体结果就是 False。结果是 True,因为按字母顺序,a 排在 b 前面。比较运算会得到一个布尔值,也就是 True 或 False。is_locked 是 False,取反后结果为 True。周末或节假日满足其中一个,整体判断就成立。

2026-11-07 20:33:51 147

原创 Python变量

Python 使用等号 = 给变量赋值。可以把下面这行读成“把 90 赋给 score”:score = 90等号左边是变量名,右边是要保存的值。执行赋值语句时,Python 先计算右边,再把结果交给左边的变量。因此,等号在这里表示赋值,不是数学里判断两边是否相等。比较两个值是否相等会用双等号,后面讲条件判断时会详细介绍。

2026-11-05 19:30:08 174

原创 2.Python表达式和算术运算符

表达式是由数据和运算符组成的计算内容,执行后会得到结果。

2026-11-04 15:57:18 335

原创 1.Python是什么?新手先把这几件事弄明白

初学 Python 不需要先研究硬件细节,但要知道程序运行时会处理数据、保存中间结果并产生输出。入门阶段先把基本功练好。相比直接操作计算机硬件,使用 Python 更容易表达“读取数据、判断条件、重复处理”这类任务。上面的平均分示例中,四个分数是输入,求和再除以 4 是处理,`print(average)` 是输出。后面的变量、条件、循环、函数,都是在帮我们更清楚地表达这些步骤。计算机能计算、存数据、接收输入、输出结果,但它不会猜我们的意思。要让它完成任务,就得把步骤说清楚,再用它能执行的语言写下来。

2026-11-04 15:38:30 157

原创 C++ 哈希表

哈希 (hash) 又称散列,是一种组织数据的方式。从译名来看,有散乱排列的意思。本质就是通过哈希函数把关键字 Key 跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出 Key 存储的位置,进行快速查找对应的value。哈希表是一种用“键 key”快速找到“值 value”的数据结构。

2026-06-23 14:40:52 208

原创 C++ 红黑树

红黑树的概念红黑树是一棵,它的每个结点增加一个存储位来表示结点的颜色,可以是红色或者黑色。通过对任何一条从根到叶子的路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍,因而是接近平衡的。红黑树的规则规则 1:每个节点不是红色就是黑色规则 2:根节点是黑色的规则 3:从根节点到任意一条路径走完,不能有连续的红色节点规则 4:对于任意节点,该节点到其所有叶子NIL的路径上,包含相同数量的黑色节点注意:红黑树中通常会把空指针看成特殊的黑色叶子节点,叫NIL。

2026-06-14 09:41:28 177

原创 C++ AVL树

更新后parent的平衡因子等于2或-2,更新前更新中parent的平衡因子变化为1->2或者-1->-2,说明更新前parent子树一边高一边低,新增的插入结点在高的那边,parent所在的子树高的那边更高了,破坏了平衡,parent所在的子树不符合平衡要求,需要旋转处理,旋转的目标有两个:1、把parent子树旋转平衡。因为5<b子树的值<10,将b变成10的左子树,10变成5的右子树,5变成这棵树新的根,符合搜索树的规则,控制了平衡,同时这棵的高度恢复到了插入之前的h+2,符合旋转。

2026-06-13 10:21:17 240

原创 C++ map和set的使用

set是 C++ STL 中的集合容器,底层用红黑树实现,元素唯一且自动排序。set底层是用红黑树实现,增删查效率是o(logN) ,迭代器遍历是走的是搜索树的中序遍历,所以是有序的。// 去重+默认从小到大排序//输出:1 3 4// 去重+从大到小排序// 输出:4 3 1// 自定义类型int age;// 按年龄排序people.insert({"小明", 20});people.insert({"小红", 18});// 按年龄排序:小红(18) → 小明(20)

2026-06-12 20:11:08 186

原创 C++ 二叉搜索树

二叉搜索树是思想和底层数据结构;set 是只存 key 的有序容器;map 是存 key/value 的有序容器;set/map 通常用红黑树这种平衡二叉搜索树实现。

2026-06-12 12:16:39 377

原创 C++多态全面讲解(1篇看懂多态)

多态就是通过基类指针或引用调用虚函数时,实际执行的是派生类重写的版本。基类指针或引用虚函数派生类重写。(注:下文Dog类,Cat类等其他动物默认都继承自Animal类,默认都是public继承)// 1. 基类有虚函数(定义接口)public:virtual void speak() { cout << "动物叫" << endl;// 2. 派生类重写虚函数(不同实现)public:void speak() override { cout << "汪汪" << endl;

2026-06-07 17:22:06 331

原创 C++ “继承、组合” 全面讲解(新手到大师直达)

继承的本质:把共性的东西抽出来,减少重复代码。继承符合“is-a”的关系。比如小狗类继承动物类,没有问题,因为小狗“是”动物。// 狗类public:void eat() { cout << name << "在吃饭" << endl;void bark() { cout << name << "汪汪叫" << endl;// 猫类public:void eat() { cout << name << "在吃饭" << endl;

2026-06-06 20:01:53 304

原创 模板(进阶)

模板参数分为类型形参和非类型形参非类型形参需要注意一点,即非类型形参必须在编译期就能确认结果。解释如下:非类型形参的使用类型形参和非类型形参的结合使用模板的特化模板特化就是给特定类型开“后门”——某些类型不按通用模板来,而是用专门的实现。模板特化分为函数模板特化以及类模板特化。举个例子:上述代码问题:函数模板形参类型实例化为const char*,函数比较的是地址而不是内容。而我们需要比较的是内容的大小。这时就需要特化一个专门处理 的版本。函数模板只能完全特化,不能偏

2026-05-23 16:30:00 238

原创 模板(初阶)

值得注意的是,模板函数中函数类型的确定是在编译器编译阶段,根据你传入数据的类型来推导具体的实参类型的,也就是说,下图中推演的过程,是在编译阶段进行的。类模板实例化与函数模板实例化不同,类模板实例化需要在类模板名字后跟<>,然后将实例化的。函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。用不同类型的参数使用函数模板时,称为函数模板的实例化。1)一个非模板函数可以和一个同名的函数模板同时存在,而且该函数模板还可以被实例化为这。而类模板参数的实例化只能显示实例化,后面再提。

2026-05-23 08:17:01 168

原创 stack | queue | deque | priority_queue(大全)

1. stack和queue不需要遍历(因此stack和queue没有迭代器),只需要在固定的一端或者两端进行操作。2. 在stack中元素增长时,deque比vector的效率高(扩容时不需要搬移大量数据);queue中的元素增长时,deque不仅效率高,而且内存使用率高。

2026-05-22 13:42:47 685

原创 STL专题三:list(2,关于list的若干问题)

在list中进行插入时是不会导致list的迭代器失效的,只有在删除时才会失效,并且失效的只是指向被删除节点的迭代器,其他迭代器不会受到影响。下面的性质其实是在说迭代器能支持哪些移动操作。大家可暂时将迭代器理解成一个指针,该指针指向list中的某个节点。const_iterator:常量迭代器,只能读,不能改元素。reverse_iterator:反向迭代器,从后往前遍历。

2026-05-21 16:30:00 37

原创 STL专题三:list(1,快速上手版)

指定大小指定大小和初值列表初始化拷贝构造。

2026-05-21 08:50:32 528

原创 STL专题二:vector(2,关于vector的若干问题)

因为空间还是原来的空间,后序元素往前搬移了,it的位置还是有效的。2. 如果拷贝的是内置类型的元素(如int,double),memcpy既高效又不会出错,但如果拷贝的是自定义类型元素,并且自定义类型元素中涉及到资源管理(需要开辟空间,如new)时,就会出错,因为memcpy的拷贝实际是浅拷贝。1) 扩容之后,迭代器已经失效了,在vs下程序就直接崩溃了,但是在linux下程序虽然可以运行,但是输出的结果是不对的。放掉,而在打印时,it还使用的是释放之间的旧空间,在对it迭代器操作时,实际操作的是一块。

2026-05-20 21:28:20 387

原创 STL专题二:vector(1,快速上手版)

vector是 C++ 标准库中的顺序容器元素在内存中连续存储支持随机访问尾部插入、删除效率高大小可以动态变化空拷贝构造。

2026-05-20 08:15:03 321

原创 STL专题一:string(2,关于string的若干问题)

最终导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,以为还有效,所以当继续对资源进项操作时,就会发生发生了访问违规。vs2019平台下,若是string容量不够时,系统会自动以1.5倍*capacity()扩容,而g++平台下是以2倍进行扩容的。注意:resize在改变元素个数时,如果是将元素个数增多,可能会改变底层容量的大小,如果是将元素个数减少,底层空间总大小不变。2. clear()只是将string中有效字符清空,不改变底层空间大小。

2026-05-17 16:30:00 191

原创 STL专题一 :string(1,快速上手版)

是C++标准库STL 中用来表示和操作的类,底层本质上是一个要想使用标准库中的string,要包含头文件:#include <string>,并使用命名空间:stdstring可理解为一个动态字符数组,专门用于字符串处理,比 C 风格字符串更安全、更方便。

2026-05-17 09:13:23 316

原创 linux权限问题

需要共享类文件,即不想让非文件的拥有者删除对应的文件。但新建出来的默认权限可能会和上面的不同,因为系统默认有权限掩码(umask)的概念。此时多人进入shared文件夹创建文件,只能修改自己创建的文件,无法删除别人的文件。此时(进入到目录中了),如果还想在目录中新建或删除文件,目录必须要有w权限。home里面放的是账号,新建一个用户会在里面新建一个文件夹,充当你的账号信息。2 权限首先要求的是角色(人),权限要求目标必须具备对应的属性。一个文件能否被删除,与文件本身无关,与文件所处目录的w权限有关。

2026-03-11 15:57:22 254

原创 linux关键指令(续)

选择window上的压缩包,将window上的压缩包传到linux上。将linux上的lesson4 压缩包传到到window上。linux环境中查看你的体系结构和系统内核版本。,进行命令搜索和命令补全。

2026-03-10 12:38:18 32

原创 linux关键指令无废话

终端的本质在linux系统里也是一个文件,/dev/pts/xxx (登录linux机器,就会在dev/pts新建一个文件。-:普通文件(文本、图片、视频、库、可执行 ):系统不关心后缀(如.txt),系统会把后缀当做文件名的一部分。“系统帮我们打开”是指:任何 C 程序启动时,操作系统内核和 C 运行库已经自动将文件描述符 0、1、2 与当前终端关联好,并提供了。这三个标准 I/O 流,这是为了方便程序进行最基本的输入输出,并实现强大的 I/O 重定向功能。单纯修改文件内容(如写入)、修改权限/所有者。

2026-03-09 19:26:15 218

原创 总结下C语言分支循环语句

输入1-5的任意数,就会打印出“工作日”,6-7则是休息日。只有输入除了1-7之外的数,才会进入default,即输入错误。其中表达式1用来初始化,表达式2用来判断,表达式3用来调整。switch后的表达式必须是整形表达式,字符型也可以。而case后面的必须是整型常量表达式,也就是说你放一个变量是运行不了的。1 while语句首先上来就判断条件,表达式的值为0直接就结束,如果非0,则进入循环。不建议使用,容易乱。break用来跳出当前的循环,而continue用来跳过本次循环之后,直接进入下一次循环当中。

2025-04-12 19:08:22 322

原创 c的起源 基础

整型4个字节,字符型1个字节,float 4个字节,double 8个字节 short 2个字节 long double 8或16字节 long可能4或8字节,但是必须大于等于int long long 8字节。为了不再重复常见的代码,如打印,c语言标准规定了一组函数,这些函数由不同的厂商根据标准实现,这些函数组成了一个库,称为标准库。转义字符,比如\t表示4位或者8位的空格,且算一个字符 \ddd表示1-3位八进制,但是d的范围是0-7 如果是\189,那么这个算3个字符。

2025-03-30 21:59:36 165

原创 开门第一篇

目前就是跟着网上的课程去学习,听懂了,课后再敲一遍,这样可以避免眼会手不会的情况。现在就集中学好c语言,挺有趣的。有着这方面的目标,我觉得我有足够的自制力每天去学习编程语言,去敲代码,我相信慢慢慢慢就能变成大牛。河海大学准研究生,希望到下次开学前,c语言已经到了一个比较高的水平。在熟悉c语言后,还希望掌握python,老师们说这门语言很好用。另外,还有被称之为c++的无底洞语言,也想慢慢去了解。我是测绘科学与技术专业,所以高德可能就是我想象中的天花板的存在。能不能进另说,但它是光,引导我不断的努力接近。

2025-03-29 16:29:23 177

空空如也

空空如也

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

TA关注的人

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