
C++
文章平均质量分 69
hellorichen
入道不长,专业不精,还有很长的路要走
展开
-
c++中左值与右值的区别
c++中常出现error为:非常量引用的初始值必须为左值。即说明你引用不是左值,可能为右值。那么左值与右值的区别是什么呢?看能否对表达式取地址,如果能,则为左值;否则为右值。例如:int i = 5;int &a = i;这时编译通过,但是如果 int &a = 5;这样就出错了这个5和i有什么区别,答案就是5是右值,i是左值,为什么,参考上面的话。回到你的代码你用一原创 2016-08-15 16:13:58 · 615 阅读 · 0 评论 -
C++中vector简介
1. vector(向量):C++中的一种数据结构,确切的说是一个类。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。2. 声明一个Int向量以替代一维数组:vector a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)3. 内存管理与效率3.1 使用reserve()函数提前设定容量大小,避免原创 2016-11-01 10:51:06 · 1250 阅读 · 0 评论 -
C++输入流cin方法
1.检查输入cin会检查输入格式,输入与预期格式不符时,会返回false。空格表示数字间隔。回车为输入结束标志。 void main(){ int sum = 0; int input; while(cin>>input){ sum += input; } cout<<"sum="<<sum<<endl;}2.getline()在中的getline函数有两转载 2016-11-10 16:18:00 · 585 阅读 · 2 评论 -
KMP字符串模式匹配
1. 算法思想 KMP算法的核心思想是利用已经得到的部分匹配信息来进行后面的匹配过程。2. 实例如下所示:下标01234567891011Sababaaababaanext[]-100123112345原创 2016-09-06 14:43:28 · 612 阅读 · 0 评论 -
C++拷贝构造函数
一、什么是拷贝构造函数例1:#include using namespace std; class CExample { private: int a; public: //构造函数 CExample(int b) { a = b;} //拷贝构造函数 CExample(const CExample& C) { a =转载 2016-09-18 09:42:58 · 482 阅读 · 2 评论 -
C++中构造函数、析构函数和虚函数
1.new时做了三件事:①分配内存空间。②调用构造函数。③返回对象指针。delete时做了两件事:①调用析构函数。②释放内存空间。原创 2016-09-16 17:17:19 · 881 阅读 · 0 评论 -
C++中static关键字
1.static控制变量的存储方式和可见性。2.为什么要引入static?函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,但函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题:如果将函数中此变量的值保存至下一次调用时,如何实现?最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有很多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函原创 2016-09-17 11:16:33 · 411 阅读 · 1 评论 -
C++指针详解
1.指针的概念指针是一个特殊的变量,它里面存储的数值被解释为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者指针所指向的内存区,还有指针本身所占据的内存区。指针的类型去掉声明中指针的名字,剩下的就是指针的类型。例如:int *ptr; //指针的类型是int * char *ptr; //指针的类型是char * i转载 2016-09-16 11:29:12 · 2237 阅读 · 1 评论 -
C++参数传递的三种方式
一般来说,C++参数传递有三种方式:值传递、指针传递和引用传递。 1.值传递 #include void fun(int a,int b) { int temp; temp=a; a=b; b=temp; } void main() {原创 2016-09-03 22:10:30 · 990 阅读 · 3 评论 -
C++中指针与引用区别
指针与引用区别引用总是指向某个对象(定义引用时没有初始化是错误的)。赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经引用,就始终指向同一个特定对象。demo1int ival = 1024,ival2 = 2048;int *pi = &ival,*pi2 = &ival2;pi = pi2;//pi now points to原创 2016-09-10 11:04:17 · 677 阅读 · 1 评论 -
图的创建与遍历(C++)
最近复习到了数据结构中的图这一章,随手整理了些图的创建与遍历的完整代码,如下所示:#include using namespace std;#define maxSize 100typedef struct { int no; //顶点编号 char info; //顶点其他信息}VertexType;typedef struct { int edges[maxS原创 2016-08-19 21:24:02 · 3833 阅读 · 2 评论 -
面试题之树中两个节点的最低公共祖先节点
1.树为二叉搜索树,二叉搜索树特点:值:右>根>左①思路从根节点开始遍历a:若该节点值比所给两个节点均大,则公共祖先节点必在其左子树上,遍历其左子树。b:若该节点值比所给两个节点均小,则公共祖先节点必在其右子树上,遍历其右子树。c:直到找到一个节点,位于两节点的中间。Given a binary search tree(BST),find the lowest comm转载 2017-07-07 18:15:02 · 651 阅读 · 4 评论