C++
wangdassye
!
展开
-
C++ ---------- 构造函数
C++ 构造函数C++程序中,对象的初始化是一个不可缺少而十分重要的问题,不应该让程序员在这个问题上花费过多的精力,C++提供了构造函数(constructor)来处理对象的初始化。构造函数是一种特殊的成员函数,与其他函数不同,不需要用户来调用它,而是在建立对象时自动执行。注意:在类中定义构造函数,它和所在的类同名。可以在类内定义构造函数,也可以只在类内声明,在类外定义。构造函数没有返...原创 2019-03-21 21:19:22 · 193 阅读 · 0 评论 -
C++ 数据类型转换
1.static_cast用于非多态类型之间的转换,不提供运行时的检查来确保转换的安全性。主要有如下:基本数据类型转换int转换成enum基类和子类之间指针和引用的转换int转换成charint n = 97;cout << n << '\t' << (char)n << '\t' << static_cast...原创 2019-08-02 10:12:36 · 290 阅读 · 0 评论 -
linux系统编程----------进程
关于进程的一些命令ps可以查看哪些进程正在执行ps -C 命令行 //通过命名来产看该命令执行后的进程信息toptop命令实时显示系统的进程状态,包括显示CPU利用率,进程状态,内存利用率等许多系统信息,top命令一旦运行就会持续不断地更新内容。按P键,根据CPU使用时间的多少排序。按M键,根据内存的使用情况排序。按T键,根据进程的执行时间的多少排序。free显示系统内...原创 2019-05-14 21:28:34 · 173 阅读 · 0 评论 -
map / multimap容器
介绍○ . 所有元素都会根据元素的键值自动排序,map所有的元素都是pair<键值,实值>,map不允许两个元素有相同的键值。○ . 不能通过map的迭代器改变map的键值,可以改变元素的实值。○ . map和list有相同的性质,插入和删除操作都不会造成原有list迭代器的失效,只有被删除的元素的迭代器失效,其他迭代器不会受到影响。○ . map和multimap的操作类...原创 2019-05-08 21:09:23 · 131 阅读 · 0 评论 -
set / multiset容器
介绍○ . 所有元素都会根据元素的键值自动被排序,set元素的键值又是实值,set不允许两个元素有相同的键值;○ . set的迭代器不允许改变set元素的值(会破坏set元素的排序规则);○ . set和list有相同的性质,插入和删除操作都不会造成原有list迭代器的失效,只有被删除的元素的迭代器失效,其他迭代器不会受到影响。(除非删的是头结点);○ . mutltiset 和set 唯...原创 2019-05-08 21:02:14 · 172 阅读 · 0 评论 -
list 容器
介绍链表是物理存储单元上非连续,非顺序的,数据结构元素的逻辑顺序是通过链表中的指针链接次序实现的。 对于任何位置上元素插入或元素的移除,list永远是常数时间(固定步骤),list容器是一个双向链表。○ . 采用动态内存分配,不会造成内存浪费和溢出○ . 链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素○ . 链表灵活,但是空间和时间额外消耗较大list容器的迭代器○ ...原创 2019-05-08 20:53:34 · 117 阅读 · 0 评论 -
stack容器 和 queue容器
stack容器介绍stack容器先进后出,只有一个出口,不允许遍历,也不提供迭代器。操作头文件 stackstack构造函数○ . stack stkT;//stack采用模板类实现, stack对象的默认构造形式:○ . stack(const stack &stk);//拷贝构造函数stack赋值操作○ . stack& operator=(const st...原创 2019-05-08 20:44:24 · 180 阅读 · 0 评论 -
deque 容器
介绍deque 是一种双向开口的连续线性空间(即允许头尾两端分别做元素的插入和删除操作,vector也允许,但效率低)deque没有容量的概念,是动态拼接。deque是分段连续内存空间,那么就必须有中央控制(中控器),维持整体连续。注意:const deque 应该对应const迭代器,逆序访问需要逆序迭代器。操作一些基本的操作和前面介绍vector容器基本类似。头文件 deque...原创 2019-05-08 20:38:18 · 210 阅读 · 0 评论 -
string 容器
介绍C++标准库定义了一种string类,String是一个类,封装了很多实用的成员方法(eg:查找find,拷贝copy,删除delete 替换replace,插入insert),string管理char*所分配的内存。每一次string的复制,取值都由string类负责维护,不用担心复制越界和取值越界等。操作头文件 string赋值操作○ =○ assign(const ...原创 2019-05-08 20:27:54 · 105 阅读 · 0 评论 -
vector容器(C++ )
介绍动态分配空间,单向开口的线性连续空间,一个vector的容量永远大于或者等于其大小。支持随机访问,单端数组,动态数组。动态增加大小,并不是在原空间之后续接新空间(因为无法保证原空间之后有可配置的空间,而是需要一块更大的内存空间,然后将原数据拷贝新空间,并释放原空间,因此对vector的任何操作,一旦引起空间的重新配置,指向原vector的所有迭代器都失效了。)操作一些常用的操作,需...原创 2019-05-08 20:17:46 · 108 阅读 · 0 评论 -
STL简述
介绍 为了建立数据结构和算法的一套标准且降低他们之间的耦合关系,以提高各自的独立性,弹性,交互性(相互合作性),提出STL(Standard Template Library)由亚历山大.斯特潘诺夫(Alexander Stepanov)创建。分类容器(container): 各种数据结构。○ 序列式容器:容器中的每个元素都有固定的顺序○ 关联式容器(会自动排好序):非线性的树结构,...原创 2019-05-08 19:59:56 · 150 阅读 · 0 评论 -
C++ ----------- 多态性与虚函数
多态在C++中,多态表现形式之一是:具有不同功能的函数可以用同一个函数名,这样就可以实现用一个函数名调用不同内容的函数。从系统实现的角度来看,多态性分为两类:静态多态性和动态多态性。静态多态性静态多态性是通过函数重载实现的。由函数重载和运算符重载(运算符重载的实质上也就是函数重载)形成的多态性属于静态多态性,在程序编译时就能决定要调用的是哪个函数,静态函数又称为编译时的多态性,特点:速度...原创 2019-03-27 20:12:59 · 308 阅读 · 3 评论 -
C++ ---------- const 指针 / void 指针 / 引用
. 各类指针对比变量定义类型表示含义int *p ;int *定义p为指向整型数据的指针变量int *p[4];int * [4]定义指针数组,是由4个指向整形数据的指针元素组成int (*p) [4];int (*) [4]p为指向包含4个元素的一维数组的指针变量int *p();int * ()p为返回一个指针的函数,该指针指向整型数...原创 2019-03-22 17:55:10 · 239 阅读 · 0 评论 -
C++ ----------- 内置函数 && 友元 && 常成员函数
内置函数在函数调用之前,要记下当时执行的指令地址,还要“保护现场”,以便在函数调用之后继续执行。在函数调用之后,流程返回到先前记下的地址处,并且根据记下的信息“恢复现场”,然后继续执行。这些都需要花费时间,如果有的函数频繁使用,用时间会很长,从而降低程序的执行效率。C++提供一种高效率的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中,从而不是讲流程转出去。这种嵌入到主函数中的函数称为内...原创 2019-03-25 14:18:19 · 194 阅读 · 0 评论 -
C++重载原理分析
函数重载:在相同作用域中的多个函数,具有相同的名字而形参类型或者形参个数不同。(返回值并不会影响函数重载)C++函数重载底层实现原理是C++利用那么name mangling(倾轧)技术,来该函数名,区分参数表不同的函数名。编译器通过函数名和参数类型识别重载函数,为了保证类型的安全连接,编译器用参数个数和参数类型对每一个函数标识符进行专门编码,这个过程被称为 “名字改编” 或“名字修饰”,类型...原创 2019-08-02 11:01:16 · 239 阅读 · 0 评论