C++
文章平均质量分 90
@曾记否
C/Cpp初学者;入坑slam;请多指教!
博客主要记录自己的学习心得和笔记!
展开
-
【一起来学C++】————(12)STL之deque容器
【代码】【一起来学C++】————(12)STL之deque容器。原创 2022-08-20 21:35:42 · 121 阅读 · 0 评论 -
【一起来学C++】————(11)STL之vector容器容器
迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装,比如:vector的迭代器就是原生态指针T*。因此迭代器失效,实际就是。,删完之后pos刚好是end的位置,而end位置是没有元素的,那么pos就失效了。因此删除vector中任意位置上元素时,vs就认为该位置迭代器失效了。erase删除pos位置元素后,pos位置之后的元素会往前搬移,没有导致底层空间的改变,理论上讲迭代器不应该会失效,但是:如果。支持随机访问的迭代器。原创 2022-08-20 20:46:37 · 489 阅读 · 0 评论 -
【一起来学C++】————(10)STL之string容器
在使用string类时,必须包含。原创 2022-08-18 22:14:40 · 402 阅读 · 0 评论 -
【一起来学C++】————(9)STL入门
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。STL(Standard Template Library,标准模板库)STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator)容器和算法之间通过迭代器进行无缝连接。STL 几乎所有的代码都采用了模板类或者模板函数学习目标:vector中存放自定义数据类型,并打印输出。...原创 2022-08-16 16:16:18 · 252 阅读 · 0 评论 -
【一起来学C++】————(7)多态
多态是C++面向对象三大特性之一,多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。public ://Speak函数就是虚函数 //函数前面加上virtual关键字,变成虚函数, //那么编译器在编译的时候就不能确定函数调用了。cout ...原创 2022-08-11 11:31:15 · 163 阅读 · 0 评论 -
【一起来学C++】————(6)C++中的继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码class A :public BA 类称为子类。...原创 2022-08-11 11:30:44 · 166 阅读 · 0 评论 -
【一起来学C++】————(8)模板
比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然。在上述代码中,如果T的数据类型传入的是像Person这样的自定义数据类型,也无法正常运行。因此C++为了解决这种问题,提供模板的重载,可以为这些特定的类型提供具体化的模板。,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供。在上述代码中提供的赋值操作,如果传入的a和b是一个数组,就无法实现了。后产生一份专门处理double类型的代码,对于字符类型也是如此。不会发生隐式类型转换。.原创 2022-08-11 11:30:03 · 95 阅读 · 1 评论 -
【一起来学C++】————(5)内存管理(上)
【一起来学C++】————(5)内存管理(上)C/C++内存分布C语言中动态内存管理方式C++内存管理方式new和delete操作自定义类型new和delete的实现原理内置类型自定义类型operator new与operator delete函数:内存泄漏的分类:堆内存泄漏(Heap leak)系统资源泄漏 C/C++内存分布 我们先来看下面的一段代码和相关问题 int globalVar = 1; static int staticGlobalVar = 1; void Test() { static原创 2022-08-01 20:00:29 · 281 阅读 · 0 评论 -
【一起来学C++】————(4)类与对象(下)
再谈构造函数 初始化列表 例如: class Date { public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; } private: int _year; int _month; int _day; }; 虽然上面的构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始化,构造函数体中的语句只能将其称作为赋初值,而不能称作初始化。因原创 2022-07-31 22:08:09 · 396 阅读 · 0 评论 -
【一起来学C++】————(3)类与对象(中)
【一起来学C++】————(3)类与对象(中)1. 类的6个默认成员函数2. 构造函数概念特性3. 析构函数概念特性4. 拷贝构造函数5. 赋值操作符重载6. 默认拷贝构造与赋值运算符重载的问题7. const成员函数8. 取地址及const取地址操作符重载 1. 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。 class Date {}; 2. 构造函数 概念 构造函数是一个特殊的成员函数,1原创 2022-07-29 19:49:47 · 232 阅读 · 0 评论 -
【一起来学C++】————(2)类与对象(上)
这里写目录标题一、面向过程和面向对象初步认识二、类的引入三、类的定义1、类的两种定义方式方式一方式二四、类的访问限定符及封装访问限定符封装五、类的作用域六、类的实例化七、类对象模型计算类对象的大小结构体内存对齐规则八、this指针this指针的特性 一、面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 二、类的引入 C语言中,结构体中只能定义变量,在C++中原创 2022-07-27 20:03:02 · 354 阅读 · 0 评论 -
【一起来用C++】————(1)类的练习案例(多文件编写)
设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。分别用全局函数和成员函数判断两个立方体是否相等。设计立方体类(Cube)求出立方体的面积和体积。原创 2022-07-27 19:01:10 · 403 阅读 · 0 评论 -
【一起来学C++】————(1)入门
什么是C++ C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度 的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。 1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语 言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产.原创 2022-07-27 06:00:00 · 168 阅读 · 1 评论