- 博客(18)
- 收藏
- 关注
原创 STL容器之vector
capacity的代码在vs和g++下分别运行会发现,vs下capacity是按1.5倍增长的,g++是按2倍增长的。这个问题经常会考察,不要固化的认为,vector增容都是2倍,具体增长多少是根据具体的需求定义 的。vs是PJ版本STL,g++是SGI版本STL。reserve只负责开辟空间,如果确定知道需要用多少空间,reserve可以缓解vector增容的代价缺陷问 题。resize在开空间的同时还会进行初始化,影响size。
2024-08-10 23:16:39
1043
原创 C++中的多态
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了 Person。Person对象买票全价,Student对象买票半价。在继承中要构成多态还有两个条件1. 必须通过基类的指针或者引用调用虚函数。2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。
2024-07-15 21:30:47
1091
原创 C++中的继承
下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。public:protected:string _name="小红";//学号protected://工号int main()//Person p;student s;teacher t;s.print();t.print();return 0;继承和组合 public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。
2024-07-12 20:43:13
1452
原创 C++STL简介与初识String类
(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的,而且是一个包罗的软件框架。
2024-05-21 20:37:10
653
原创 C++之模版初阶
class 类模板名// 类内成员定义class Apublic:,_size(0)~A();int _size;// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表A<T>::~A()int main()A<int>a;return 0;
2024-05-20 19:22:27
427
1
原创 C/C++内存管理
a2 = 0;int _a2;free(ptr);*/return 0;new/delete和malloc/free对于自定义类型的最大区别就是new/delete除了开空间还会调用构造函数和析构函数。对于内置类型两者几乎相同。new的原理1. 调用operator new函数申请空间。
2024-05-19 16:40:03
657
原创 C++类和对象(三)
运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。为:关键字后面接需要重载的运算符符号。:返回值类型操作符(参数列表)。
2024-04-17 14:46:32
369
1
原创 C++类和对象(二)
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。(默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。
2024-04-13 19:57:20
872
原创 C++类与对象(一)
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。
2024-04-07 19:19:04
855
原创 初识C++(二)
auto是新的类型指示符用来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错,因为编译器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。int main()
2024-03-31 18:02:48
1024
1
原创 数据结构之排序
在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。这里的代码是对选择排序的优化版本,它可以同时选出最大值和最小值。
2024-03-29 20:04:11
842
3
原创 初识C++(一)
但是在C++中引入了命名空间的概念,一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。这样就防止了上述问题的发生。定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。
2024-03-28 11:33:14
989
3
原创 数据结构之二叉树
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继因此,树是递归定义的。注意:树中的子树之间不能有交集,树中不能有环的存在。
2024-03-22 19:02:01
942
1
原创 C语言分支与循环语句2
这篇文章我们主要讲解循环语句.C语言提供3种循环结构的语句:while语句,do-while语句和for语句.//如果循环体想包含更多的语句,可以加上⼤括号。输⼊⼀个正的整数,逆序打印这个整数的每⼀位。输⼊:1234,输出:4 3 2 1。表达式2 ⽤于循环结束条件的判断。表达式1 ⽤于循环变量的初始化。输⼊:521,输出:1 2 5。表达式3 ⽤于循环变量的调整。在屏幕上打印1~10的值。在屏幕上打印1~10的值。
2023-10-23 15:28:14
36
原创 C语言分支与循环语句1
这里我们重点讲解选择结构和循环结构.首先是选择结构:选择结构也叫做分支结构.在C语言中我们可以用if else语句和switch case语句来进行分支结构的实现.C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的.表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏。结构,⽤于判断条件有多个结果的情况。输⼊任意⼀个整数值,计算除3之后的余数。改成更易⽤、可读性更好的形式。如果找不到对应的值,语句是⼀种特殊形式的。不同的值,执⾏相应的。
2023-10-23 13:21:00
30
原创 10_10
四.对于编程我的态度:每天至少敲30分钟代码,因为在上大学时间有限,周末会加大代码的练习量并且去回顾鹏哥的课程来弄清自己不懂的地方.每周至少花费15个小时.三.如何学习编程:跟着b站up主比特鹏哥学习,并在课下自己尝试敲代码.多多练习,宝剑锋从磨砺出.要持之以恒去敲代码,在自己的gitee上留下浓厚色彩.一.自我介绍:一名刚开始学C语言的菜鸟,在此写下一篇博客来记录自己正式学习C语言的第二天,二.编程目标:熟练掌握C语言,为以后自己打电赛做好基础准备.五.比较想去的it公司:华为.
2023-10-10 22:34:10
36
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人