C++入门
文章平均质量分 82
Robotsfriend
这个作者很懒,什么都没留下…
展开
-
c++: stack和queue ; STL_make_heap(), pop_heap(), push_heap()
文章目录前言一、stack的介绍和使用二、stack的使用1.函数说明2.stack的模拟实现3.deque的原理介绍3.1 deque(双端队列)3.2 deque的缺陷4.为什么选择deque作为stack和queue的底层默认容器5. priority_queue的介绍和使用5.1 priority_queue的介绍5.2 priority_queue的使用总结前言STL:空间配置器、容器、仿函数、算法、迭代器、适配器容器分为两类:序列式(线性);关联式(非线性)仿函数本质是对象,跟函数一原创 2021-05-07 10:41:39 · 239 阅读 · 0 评论 -
C++ vector相关内容
文章目录前言一、vector(动态数组)**1.1 vector的定义****1.2 vector iterator 的使用**1.3 vector 空间增长问题1.4 vector 增删查改二、vector 迭代器失效问题(重点)2.1.定义迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装,比如:vector的迭代器就是原生态指针T*。因此迭代器失效,实际就是迭代器底层对应指针所指向的空间被销毁了,而使用一块已经被释放的空间,造成的后果是程序崩溃(即如果原创 2021-04-22 11:12:47 · 114 阅读 · 0 评论 -
C++ 模板初阶:泛型编程、函数模板、类模板
模板初阶前言一、泛型编程是什么?1.概念二、2. 函数模板1.概念2. 函数模板格式3.函数模板的原理4.函数模板的实例化隐式实例化:让编译器根据实参推演模板参数的实际类型显式实例化:在函数名后的<>中指定模板参数的实际类型总结前言使用函数重载虽然可以实现,但是有一下几个不好的地方:重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数代码的可维护性比较低,一个出错可能所有的重载均出错那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成原创 2021-04-16 16:14:48 · 141 阅读 · 0 评论 -
c++入门 this指针、类的成员函数
目录this指针一、this指针的引出1.引入库this指针作用:2.this指针的特性二、类的6个默认成员函数1.构造函数1.1 概念1.2 特性2.析构函数2.1 概念2.2 特性3.拷贝构造函数3.1 概念3.2 特性4.运算符重载4.1 概念4.2 特性4.3 赋值运算符重载this指针一、this指针的引出1.引入库this指针作用:C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,原创 2021-04-12 22:17:49 · 359 阅读 · 0 评论 -
C++ 入门--类和对象:内敛函数、宏的优缺点、auto关键字
内联函数:以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率。也就是说,内联函数在使用时不再以函数调用的方式进行,而是将函数直接copy下来去使用,这样就节省了现场保护、现场恢复的时间,从而提升效率。内联函数特性:inline是一种以空间换时间的做法,省去调用函数额开销。所以代码很长或者有循环/递归的函数不适宜使用作为内联函数。只适用于函数内部算法简单的函数使用。inline对于编译器而言只是一个建议,编译器会自动优化原创 2021-04-11 12:47:35 · 151 阅读 · 0 评论 -
C和C++初步认识、类定义和访问限定符
面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。面向对象的四大特点:抽象、封装、继承和多态C++中结构体即可以定义变量,也可以定义函数,但C语言中结构体内不能定义函数。//struct Test //结构体class Test //类{ int a; // 结构体中定义变量a,类中实例化对象a(成员变量) double b; ch原创 2021-04-11 13:24:40 · 138 阅读 · 0 评论 -
C++ 入门—类和对象:重载函数、引用概念理解
重载函数:它属于C++的一种特殊函数,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。利用实例来进行详细说明:问题一:上面给出Test两个函数能否构成重载?void TestFunc(int a = 10)//无缺省{ cout<<"void TestFunc(int)"<<endl;}void TestFunc(int a )//有缺省{ c原创 2021-04-10 22:21:31 · 235 阅读 · 0 评论 -
C++ 入门 —类的概念、内存对齐
目录一、C++中struct和class的区别是什么?二、类的作用域三、类的实例化四、类对象的存储方式五、内存对齐问题一、C++中struct和class的区别是什么?解答:C++需要兼容C语言,所以C++中struct可以当成结构体去使用。另外C++中struct还可以用来定义类。和class是定义类是一样的,区别是struct的成员默认访问方式是public,class是struct的成员默认访问方式是private,相比较C++的封装性使得数据更加安全。面向对象的三大特性:封装、继承、多态原创 2021-04-11 20:19:09 · 196 阅读 · 0 评论