包含标签 C++ 的文章

C++ STL

1.vector Vector是顺序容器,是一个动态数组,支持随机存取、插入、删除、查找等操作,在内存中是一块连续的空间。 注意:vector动态增加大小时,并不是在原空间之后持续新空间(因为无法保证原空间之后尚有可供配置的空间),而是以原大小的两倍另外配置一块较大的空间,然后将原内容拷贝过来,然……

阅读全文

B树,B+和B-

二叉搜索树 二叉搜索树,BST(Binary Search Tree),即为特殊的二叉树。 对于二叉树的任意一个节点,其左子树中所有的值均小于该节点;右子树中所有的值均大于该节点。 二叉搜索树按照中序遍历的方式(左 - 中 - 右)得到的序列为从小到大的有序序列。 B数 二叉搜索树,树如其名,它在搜索一个值的时……

阅读全文

C++类和对象

C++中的类,对象,虚函数都是面试过程中经常会考的问题。 在这里记录一下面试过程中类这一块经常遇到的题目 1.虚函数的作用 虚函数的作用主要是实现了多态的机制。 这样就可以把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化……

阅读全文

C++指针你要了解的事

指针和引用的区别 1 2 3 4 5 6 7 8 9 指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用仅是个别名;引用使用时无需解引用(*),指针需要解引用;引用只能在定义时被初始化一次,之后不可变;指针可变;引用没有const,指针有const;引用不能为空,指针可以……

阅读全文

几道非常有意思的C++题目

1.给私有成员变量赋值 已知一个类的结构,但是它所有的成员变量是私有的,有get方法,但是没有set方法,请问如何给成员变量赋值。 答案 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include <iostream>using namespace std; class A{ private: int b; public: int getB(){ return b; } }; int main(){ A *a = new A; int *p = (int *)a; *p = 1; cout<<a->getB()<<endl; } 这道题的关键在于,要了解C++实例的内存……

阅读全文

C++类对象的内存分布

C++中类初始化成一个对象之后,该对象实例在内存中是如何分布的呢? 空类情况 如果实例化一个空类,这个对象会在内存中占用1个字节。目的只是标识一下,这是一个类实例(因为不占的话,就和空数据没什么区别)。 含基本数据,不含函数的情况 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include <iostream>using namespace std; class A{ char……

阅读全文

C++代码的一生

目录 c++代码变成可执行文件 (1)预处理过程 (2)编译过程 (3)汇编过程 (4)链接过程 (5)目标文件 (6)静态链接和动态链接 可执行文件变成进程 正文 一个c++程序,从.c文件,变成二进制可执行文件,会经历上述四个过程。 预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏……

阅读全文