
C++
文章平均质量分 90
@A云淡风轻
越努力越幸运
展开
-
二叉树超级经典OJ题
通过题目意思和输入输出的方式,我们可以使用队列,先入队列的先出队列,当前一层的节点都出队列时,下一层的的节点都进队列,此时下一层的节点个数即是levelSzie = q.size(),通过levelSize控制一层一层出,使用vector对出队列的节点进行保存即可。给你二叉树的根节点root,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。可以知道:一个是它左子树的节点,一个是它右子树的节点,那么它就是最近公共祖先。思路一:时间复杂度:O(H*N),H是树的高度。原创 2023-01-25 23:41:51 · 927 阅读 · 1 评论 -
C++之多态(中篇)(最全总结)
在虚函数的后面写上 =0,则这个函数为纯虚函数,包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。public :};public :cout原创 2022-12-21 11:54:39 · 464 阅读 · 0 评论 -
C++之多态(上篇)(最全总结)
需要声明的,这两篇文章(C++之多态(上下篇))的运行环境都是在vs2013下的x86程序中,涉及的指针都是4bytes。如果要在其他平台下,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等。虚函数:即被virtual修饰的类成员函数称为虚函数。ps: 普通函数不能用virtual修饰,会报错。public :cout原创 2022-12-19 23:40:34 · 381 阅读 · 0 评论 -
C++中的继承
继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性基础上进行扩展,增加功能,这样产生新的类称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类层次的复用。public ://姓名 int _age = 18;//年龄 };//学号 };//工号 };s . _name = "张三";t . _name = "赵老师";return 0;}原创 2022-12-18 22:37:33 · 308 阅读 · 0 评论 -
C++之string类的使用
C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本。但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可。都使用string类,很少有人去使用C库中的字符串操作函数。replace替换,需要挪动数据,效率较低,一般不建议使用。功能:可以在任意位置插入字符或字符串。功能:为字符串赋值,替代当前字符串。原创 2022-09-04 15:35:57 · 689 阅读 · 0 评论 -
C++STL简介(了解)
STL(standard template library–标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本–所有STL实现版本的始祖。P. J. 版本由P. J. Plauger开发,继承自HP版本,原创 2022-08-30 10:06:01 · 136 阅读 · 0 评论 -
C++模板初阶
加油,坚持原创 2022-08-30 09:51:59 · 111 阅读 · 0 评论 -
C++之类和对象(下)
希望这篇文章对您有所帮助,如有错误,还望指出,谢谢!原创 2022-08-21 21:29:04 · 325 阅读 · 0 评论 -
C++之类与对象(上)
/类体:由成员函数和成员变量组成 };//一定要注意后面的分号class为定义类的关键字,classname为类的名字,{}中为类的主体,注意类结束时后面的分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量,类中的函数称为类的方法或成员函数。成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2.类的声明放在.h文件中,成员函数放在.cpp文件中。声明和定义分离的好处:通过声明可以大概了解整个框架,有哪些成员变量,成员函数等等。.........原创 2022-08-05 19:15:50 · 329 阅读 · 0 评论 -
C++入门基础知识(2)
在早期的C/C++中,auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没人去使用它,大家思考一下为什么?C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。(也就是说,auto可以自动推导类型)//自动推导类型 auto c = 's';//auto e;//error 无法通过编译,使用auto定义变量时,必须对其进行初始化。return 0;}...原创 2022-08-04 21:31:59 · 270 阅读 · 0 评论 -
C++入门基础知识(1)
命名空间的定义,需要使用namespace关键字,后面跟命名空间名,再加一对{},{}里面是命名空间成员。注意一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。原创 2022-08-02 15:51:58 · 119 阅读 · 0 评论 -
C++入门基础知识(0)
C语言是结构化(层次感)和模块化(解决一个复杂问题时自顶向下逐层把系统划分成若干个模块的过程,有多种属性,分别反映其内部特性)的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适,为了解决软件危机,20世纪80年代,计算机界提出了OOP(objectorientedprogramming面向对象)思想,支持面向对象的程序设计语言应运而生。以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。.........原创 2022-07-31 11:57:31 · 195 阅读 · 0 评论