- 博客(22)
- 收藏
- 关注
原创 C++类和对象(中)——类的6个默认成员函数及日期类的实现
说到这里,你可能会想:既然我们在不写的情况下,编译器会自动生成一个构造函数,那我们就没有必要自己写构造函数了。这种想法时不对的。
2025-10-10 21:07:19
6089
原创 C++类和对象(下)
若一个类没有默认构造函数,那我们在实例化该类对象时就需要传参对其进行初始化,所以实例化没有默认构造函数的类对象时必须使用初始化列表对其进行初始化。
2025-10-04 16:37:47
5896
原创 C++类和对象(上)
/类体:由成员函数和成员变量组成//一定要注意后面的分号其中class为定义类的关键字,className为类的名字,{}为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。1.声明和定义全部放在类体中。需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2.声明放在头文件(.h)中,定义放在源文件(.cpp)中。注意:一般情况下,更期待采用第二种方式。成员变量命名规则。
2025-10-03 12:23:43
11481
原创 C++STL详解(五)——list的介绍及使用
构造一个某类型的空容器。//构造int类型的空容器构造一个含有n个val的某类型容器。//构造含有10个2的int类型容器拷贝构造某类型容器的复制品。//拷贝构造int类型的lt2容器的复制品使用迭代器构造某一段内容。//构造string对象某段区间的复制品构造数组某段区间的复制品//构造数组中某段区间的复制品。
2025-10-02 16:27:22
6076
原创 C++STL详解(四)——vector的模拟实现
在vector当中有三个成员变量_start、_finish、_endofstorage_start指向容器的头,_finish指向容器当中有效数据的尾,_endofstorage指向整个容器的尾。
2025-09-30 11:49:59
11277
原创 C++STL详解(二)——vector的介绍及使用
构造一个某类型的空容器。//构造int类型的空容器构造一个含有n个val的某类型容器。//构造含有10个2的int容器拷贝构造某类型容器的复制品。//拷贝构造int类型的v2容器的复制品使用迭代器拷贝构造某一段内容。//使用迭代器拷贝构造v2容器中的某一段内容注意:该方式也可以用于拷贝其他容器中的某一段内容。//拷贝构造s中的某一段内容。
2025-09-29 01:30:25
5982
原创 C++STL详解(一)——string类
string类实现了多个构造函数的重载,常用的构造函数如下:使用示例:二、string的使用1.使用push_backvoid push_back(char c);2.使用insertstring& insert(size_t pos,const string& str);string& insert(size_t pos,const char* s);iterator insert(iterator p,char c);三、string的拼接使用append函数完成
2025-09-28 01:46:58
5863
原创 Linux开发工具(编辑器gcc/g++,make/Makefile,gdb)
静态库是指编译链接时,把库文件的代码全部加载到可执行文件当中,因此生成的文件较大,但是在运行时也就不需要库文件了,静态库一般以.a为后缀。动态库与之相反,在编译链接时并没有把库文件的代码加载到可执行文件当中,而是在程序运行时由链接文件加载库,这样可以节省系统的开销,动态库一般以.so为后缀。
2025-09-24 20:44:01
6276
原创 C++入门
/命名空间域的定义// 命名空间中可以定义变量/函数/类型注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中int val;在早期C/C++中的auto含义是:auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人使用。C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器编译时推导得到。return 10;int main()
2025-09-21 23:26:07
11228
原创 Linux开发工具的使用(yum包含一些好玩的程序、vim)篇
这基本就是Linux作为一个开源软件的生态,它是所有商用发布OS的核心,是所有主流厂商的承认的操作系统,厂商如果希望Linux可以运行自己硬件,那么必须将硬件驱动加入Linux并维护,从而将主流厂商与Linux绑定更加紧密。后来由于Linux的各种优点,让全世界更多的开发者甘愿参与进来完善,其中更有IBM、ARM等一系列巨头公司参与,形成一种Linux为世界各地开发者提供方便,开发者通过参与提高能力,IBM等公司通过开发驱动将自己硬件设备应用在Linux,从而促进Linux继续壮大的互利形态。
2025-09-17 17:26:52
6927
1
原创 Shell运行原理及Linux中权限
但实际上你会发现,你所创建的目录和文件的权限值往往不是我们所翻译出来的值,原因是创建文件和目录的时候还要受到umask的影响,假设默认权限是mask,则实际上创建出来的文件权限是:mask&(~umask)若是具有可写属性,第二个位置的字符为w;lesson4和lesson5都是目录文件,该文件的拥有者和所属组都是可读可写可执行的,但该文件的other对其只有可读,可执行的权利。然后将之前新建的文件的默认权限值和新建目录的权限值分别与其进行按位与的操作,得到的就是我们创建出来的文件和目录的权限值。
2025-09-14 14:18:43
6242
原创 C++模板详解——函数模板与类模板
class 类模板名//类内成员声明public:_size = 0;_size++;// 其他方法...~Stack()_size = 0;int _size;注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表(模板的周期为一个完整的大括号)public:// 其他方法...~Stack()_size = 0;int _size;//不能这样。
2025-09-12 09:47:49
6137
原创 C++动态内存管理详解.
new的原理1. 调用operator new函数申请空间2. 在申请的空间上执行构造函数,完成对象的构造delete的原理1. 在空间上执行析构函数,完成对象中资源的清理工作2. 调用operator delete函数释放对象的空间new T[N]的原理1. 调用operator new[]函数,在operator new[]中实际调用operator new函数完成N个对象空间的申 请2. 在申请的空间上执行N次构造函数delete[]的原理。
2025-09-09 11:01:29
5898
原创 算法基础之高精度
当数据的值特别大,各种类型都存不下的时候,此时就要用高精度算法来计算加减乘除:1.先用字符串读入这个数,然后用数组逆序存储该数的每一位(因为我们计算的时候是从最低位开始加减)2.利用数组,模拟加减乘除的运算过程高精度的本质还是模拟算法,用代码模拟小学李述之计算加减乘除的过程。
2025-04-14 19:29:45
446
原创 基础算法之模拟
今天是蓝桥杯软件赛结束的日子从即日起,我将开始更新我所有学到的算法愿对你我都有所帮助。1.模拟模拟,顾名思义,就是题目让你做什么你就做什么,考察的是将思路转化为代码的代码能力。这类题一般比较简单,属于竞赛里面的签到题(但是万事无绝对,也有可能出现让人非常难受的模拟题),我们在学习语法阶段接触的题,大多都属于模拟题。1.1多项式输出题⽬来源: 洛⾕题⽬链接:难度系数: ★【题⽬描述】⼀元n次多项式可⽤如下的表达式表⽰:fx) =anxnan−1xn−1。
2025-04-13 09:13:25
908
原创 顺序表,链表,栈所有相关算法题
1.询问学号【题⽬描述】有 n(n<=2e6)名同学陆陆续续进⼊教室。我们知道每名同学的学号(在1 到 1e9之间),按进教室的顺序给出。上课了,⽼师想知道第 个进⼊教室的同学的学号是什么(最先进⼊教室的同学i = 1 ),询问次数不超过 1e5次。【输⼊描述】第⼀⾏2个整数n和m,表⽰学⽣个数和询问次数。第⼆⾏n个整数,表⽰按顺序进⼊教室的学号。第三⾏m个整数,表⽰询问第⼏个进⼊教室的同学。【输出描述】输出m个整数表⽰答案,⽤换⾏隔开。
2025-01-23 00:10:18
2188
1
原创 栈和stack
栈是⼀种只允许在⼀端进⾏数据插⼊和删除操作的线性表。进⾏数据插⼊或删除的⼀端称为栈顶,另⼀端称为栈底。不含元素的栈称为空栈。进栈就是往栈中放⼊元素,出栈就是将元素弹出栈顶。栈其实是⼀个⽐较简单的数据结构。学习的重点在于⽤栈去解决问题,这也是难点。【注意】如果定义了⼀个栈结构,那么添加和删除元素只能在栈顶进⾏。不能随意位置添加和删除元素,这是栈这个数据结构的特性,也是规定。
2025-01-21 00:08:59
237
原创 链表与list
线性表的链式存储就是链表。它是将元素存储在物理上任意的存储单元中,由于⽆法像顺序表⼀样通过下标保证数据元素之间的逻辑关系,链式存储除了要保存数据元素外,还需额外维护数据元素之间的逻辑关系,这两部分信息合称结点(node)。即结点有两个域:保存数据元素的数据域和存储逻辑关系的指针域。
2025-01-17 23:17:12
395
原创 顺序表与vector
线性表在逻辑上可以想象成是连续的一条线段,线段上有很多点。此处的bug是删除顺序表之前要考虑顺序表中是否还有元素。的底层就是⼀个会⾃动扩容的顺序表,其中创建以及增删查。除了上述的bug外此处多的一个bug是p的数值要合法。empty:返回顺序表是否为空返回的是bool类型。end:返回终点位置的下一个位置的迭代器(右开)线性表是n个具有相同特性的数据元素的有序序列。因此,线性表是一个比较简单和基础的数据结构。如果小于原始的大小,相当于把后面的元素删除;如果大于原始的大小,多出来的位置默认补0;
2025-01-16 22:24:22
741
原创 算法竞赛中的一些结构体知识
今天学习的是结构体中的构造函数和析构函数sort函数,该函数用于对各种类型排序需要添加头文件#include<algorithm>原因是:结构体的成员变量和成员变量函数,默认是公开的,而class中的成员变量和成员函数默认是私有的(private)数,就不需要再写其他成员函数来初始化结构体(类)的成员,⽽且构造函数是在结构变量创建的时候,析构函数是⽤来完成结构体变量中资源的清理⼯作,也是结构体中默认的成员函数之⼀。构造函数是结构中默认的成员函数之⼀,构造函数的主要的任务是初始化结构体变量。
2025-01-06 20:28:02
394
原创 位运算之异或技巧
我们可以去思考我们可以使用向上一道题的方法但是这次要循环两次用ret异或数组然后异或我们所要的所有数字在此过程中会异或所有相同的数字为0最后会找出缺失的数字。让所有的数字异或在一起相同的异或会为0只有单个数字会留下来也就是我们要找的单个数字。2.也可不创建临时变量但是它只能解决部分问题(当数字很大时存储不下)3.a ^ b ^ a == a ^ a ^b异或是支持交换律的;1.x ^ x = 0,两个相同的数字异或的结果是0;2.0 ^ x = x,0和x异或还是x;3.就是今天的重点异或。
2025-01-01 22:37:48
777
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅