
C++学习总结
阿彬要成为大牛
这个作者很懒,什么都没留下…
展开
-
AVL树
AVL树是二叉搜索树的一种升级,因为搜索二叉树最坏情况会退化为单支树,效率会降低,所以设计出了一种左右高度差绝对值小于等于一的树,现在我们来讨论一下他的特点并给树代码。特点:一种特殊的二叉搜索树左右高度差绝对值<=1;插入1.首先找到插入的结点位置,这一步和二叉搜索树一样,因为插入新节点,所以要更新二叉树。...原创 2020-03-01 16:36:47 · 209 阅读 · 1 评论 -
STL关联式容器
map的使用STL库的map使用没有太多要讲的东西,主要是要清楚的原理和多使用,只列出几个我自己使用时遇到的问题。insert :insert的返回值是一个键值对,<itreator,bool>find:找不到时反回的是end,存在返回迭代器at :返回K对应的val,不存在抛异常。[ ]的原理:用<key, T()>构造一个键值对,然后调用insert()函数...原创 2020-02-29 15:51:31 · 165 阅读 · 0 评论 -
C/C++的内存管理
C/C++的地址空间malloc/free和new/delete的区别malloc/free和new/delete的共同点是:都是从堆上申请空间,并且需要用户手动释放。不同的地方是:malloc和free是函数,new和delete是操作符malloc申请的空间不会初始化,new可以初始化malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可mall...原创 2020-02-19 16:19:21 · 152 阅读 · 0 评论 -
vector
vector的基本概念vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。vector空间的分配本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储...原创 2020-02-19 15:50:00 · 174 阅读 · 0 评论 -
C/C++的string
前段时间看了点东西,导致知识比较乱,最近打算把他们总结一下,首先就是C/C++的string。首先简单的回顾接口之后还将讨论一下深浅拷贝的问题。stringC的函数库里也提供了很多对C风格字符串操作的函数,但是使用的时候还是会遇到很多问题内存泄漏,访问越界,覆盖等一系列的问题,而且还不符合面向对象的风格。所以C++引入了字符串类。string的接口这里我们主要列出修改字符串的接口resi...原创 2020-02-19 14:41:52 · 123 阅读 · 0 评论 -
函数指针,函数对象,lambda表达式,c++faction
lambda表达式[capture-list] (parameters) mutable -> return-type { statement }lambda表达式各部分说明[capture-list] : 捕捉列表,该列表总是出现在lambda函数的开始位置,编译器根据[]来判断接下来的代码是否为lambda函数,捕捉列表能够捕捉上下文中的变量供lambda函数使用。(param...原创 2020-02-18 17:45:21 · 410 阅读 · 0 评论 -
编译的过程、宏,内联函数,宏函数
学习了很久的C/C++如果还是搞不清这些基础知识的话很说不过,但是宏函数,内联函数这方面又很少使用,很容易遗忘,下面我来总结一下。编译的过程一般一个程序的编译分为四步,预处理,编译,汇编,连接。预处理:展开头文件,替换宏定义,去掉注释,条件编译Linux下生成.i后缀的文件。命令时gcc -E;编译:...原创 2020-02-18 16:56:07 · 299 阅读 · 0 评论 -
C++模板
C++模板泛型编程作为C++支持泛型的重要武器,模板被引入作为泛型编程的基础:泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。模板又分为函数模板和类模板模板函数模板定义格式template<typename T1, typename T2,......,typename Tn>返回值类型 函数名(参数列表){}template<...原创 2019-08-02 11:42:30 · 94 阅读 · 0 评论 -
C++入门知识铺垫
C++入门知识铺垫命名空间命名空间的作用在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用 域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污 染,namespace关键字的出现就是针对这种问题的。注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中命名空间的定义:...原创 2019-06-04 15:59:53 · 151 阅读 · 0 评论 -
C++类的初识
C++类的初识什么是类类就是对事物特征的抽象,也可以理解为一个模具,不是他所描述的具体的事物.c++中引入类也引入了一种新的编程思维,传统C语言是面向过程的我们解决问题时关注的时解决问题的步骤具体体现为函数,而面向对象编程关注的是对象的行为和对象间的交互类的引入和定义C++中可以用struct 和 class定义类,区别是struct的成员默认访问方式是public,class是struc...原创 2019-06-04 15:58:39 · 206 阅读 · 0 评论