c++
文章平均质量分 54
laola的故事
这个作者很懒,什么都没留下…
展开
-
函数参数传递
每次调用函数时,都会重建它的形参,并且传入的实参会对形参进行初始化。 一般来说,形参的类型决定了形参和实参的交互方式。如果形参是引用类型,它将绑定到对应的实参上;否则,将实参的值拷贝后赋给形参。由此我们会说,函数传参包括两种:引用传递和值传递。值传递值形参初始化一个变量时,初始值被拷贝给变量,该变量的变化并不影响初始值的变化。如:int i =1024; //定义i为1024int j=i;原创 2017-10-24 22:33:48 · 304 阅读 · 0 评论 -
vector第四步修炼之道
在使用系统中自带的STL库时,我们会使用迭代器来访问容器中的元素。那么《vector第二步修炼之道》和《vector第三步修炼之道》之中,我们均是使用自定义vector 类的show() 函数来进行访问的。当然,我们也是可以自定义迭代器来实现元素的访问。准备资料:首先,看如下的代码:void show(vector<int>& vec){ vector<int>::iterator it原创 2017-12-15 20:53:55 · 747 阅读 · 0 评论 -
vector第三步修炼之道
在vector第二步修炼之道中,我们开辟内存都是使用new,释放内存都是delete。在我们使用内置类的时候,看不到区别。如果我们使用自定义类,并且自定义类还比较复杂,那么这种优化就显得很重要了。 new操作符主要干两件事: (1)申请内存; (2)初始化 delete 操作符主要干两件事: (1)释放内存; (2)析构 那么在上一个篇博客中,我们就看到优化的地方。我们需要将申请内存和原创 2017-12-14 22:27:54 · 375 阅读 · 0 评论 -
vector第二步修炼之道
在上一篇博客中,我们使用STL库中的vector简单的使用了它,那么我们学习了面向对象的知识,为何不写一个vector 类呢? 首先需要定义成员变量:包括一个指向vector首元素的指针,数组的长度,数组的有效元素长度,还有一个扩展内存。 成员方法:构造函数,拷贝构造,赋值函数,外加相应的操纵函数。定义vector.h文件#pragma once#include<iostream>using原创 2017-12-14 12:20:40 · 242 阅读 · 0 评论 -
vector第一步修炼之道
标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中每个对象都有一个与之对应的索引,索引用于访问对象。源于vector 包含着其他对象,所以它常被称作容器。 C++中含有类模板和函数模板,其中vector是一个类模板。编译器根据模板创建类或函数的过程称为实例化。定义和初始化vector对象#include<iostream>#include<vector>using name原创 2017-12-13 11:13:37 · 450 阅读 · 0 评论 -
顺序容器初识
顺序容器定义该类型的容器中的顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。顺序容器类型 类型 说明 vector 可变大小数组。支持随机访问。在尾部之外的位置插入或者删除元素可能较慢。 deque 双端队列。支持快速随机访问。在头尾位置插入、删除元素速度很快。 list 双向链表。只支持双向顺序访问。在list中任何位置进行插入、删除操作速度都很快。 fo原创 2017-12-21 17:54:59 · 321 阅读 · 0 评论 -
C++模板(函数模板与模板函数)
问题来源:定义相同功能,但是参数类型不同的函数需要为每种类型都定义函数,代码量大大增加。 如定义两个整数之和:int fun1(int a,int b);定义两个浮点数之和:float fun2(float a,float b);定义两个double类型数之和:double fun3(double a,double b);如图所示: 函数模板: 定义一个通用的函数模板,而不是为每个类型都定义一原创 2017-12-08 12:31:26 · 1307 阅读 · 0 评论 -
自定义String类(C++)----------测试(一)
题目:请写出下面这个类的方法代码class String{public: String(char *pstr); ~String(); String(const String &src); void operator=(const String &src);private: char *_pstr;};这是一个C++题目,要求写出构造函数、析构函数、原创 2017-11-14 12:06:59 · 839 阅读 · 0 评论 -
C++函数基本知识
函数的定义一个函数的定义主要包括以下几个部分组成:返回类型、函数名字、由0个或多个形参组成的列表以及函数体。基本形式如下所示: 返回类型 函数名字(有0个或多个参数)调用函数函数的调用主要完成两项工作:一是用实参初始化函数对应的形参,二是将控制权转移给被调用函数。此时,主调函数的执行被中断,被调函数开始执行。 这个主要涉及到函数栈帧的开辟、调用等知识。参见《程序员自我修养》,后期有时间会补充这原创 2017-10-24 21:13:17 · 581 阅读 · 0 评论 -
复合类型之引用
引用包括“左值引用”和“右值引用”两种;左值引用引用为对象起了另一个名字,通过将声明符写成&d的形式来定义引用类型。int i = 1024;int &refval = i; //refval 是i的别名一般在初始化变量时,初始值会被拷贝到新建的对象中。然而定义引用时,程序会把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用和它的初始值绑定在一起,因为无法把引用重新和另原创 2017-10-20 18:32:50 · 359 阅读 · 0 评论 -
复合类型之指针
指针的含义指针是“指向”另外一种类型的复合类型。与引用类似,指针也实现了对其他对象的间接访问。 指针和引用的区别 (1)指针是一个对象,允许对指针赋值和拷贝,而且指针在其生命周期内可以先后指向几个不同的对象; (2)指针无需在定义时赋初值。和其他内置类型一样,在块作用域内定义的指针如果没有进行初始化操作,系统也将会自动分配一个不确定的值。指针的定义定义指针类型的方法将声明符写成*d的形式,其中原创 2017-10-22 21:15:13 · 634 阅读 · 0 评论 -
C++实现循环队列
(基础知识后期补充) 操作代码如下:头文件CircleQueue.h#include<iostream>#include<cstring>#pragma once //循环队列class CircleQueue{public: CircleQueue(int size = 20); //构造函数 ~CircleQueue(); //析构函数 Circl原创 2017-10-30 20:47:53 · 6892 阅读 · 0 评论 -
C++实现顺序栈
近期在学习C++ 的过程,由于时间仓促,基本知识未能及时整理(后期补充),为了巩固所学的知识,用C++语言来实现顺序栈。基本代码如下:/*** 题目:实现顺序栈*/#include<iostream>#include<cstring>#include <stdlib.h>#include <time.h> using namespace std;class SqStack{priv原创 2017-10-30 20:43:52 · 1435 阅读 · 0 评论 -
const在C++ 和C 中的比较
目前,我们讨论的是C++99和C89 的标准;C语言在C语言(C89标准)中, const 的特性:const int size=10; //正确(常变量)int array[size]={0} //错误(常变量不能用做数组下标)C++语言const int size=10; //正确(常量)int array[size]={0} //正确这是什么原因呢?其实是在C语言和C++语言中,两原创 2017-10-21 11:19:46 · 443 阅读 · 0 评论 -
C++函数返回类型和return语句
定义return语句终止当前正在执行的函数并将控制权返回给调用该函数的地方。return语句有两种形式:return;return expression;无返回值的函数没有返回值的return语句只能用在返回类型是void 的函数中,返回void 的函数不要求必须有return 语句,编译器会自动的在最后一句后面隐式执行return。有返回值的函数基本知识如果函数有返回值,那么return 语句返原创 2017-10-28 19:02:48 · 7212 阅读 · 0 评论 -
C++重载函数
定义如果在同一作用域内的几个函数名字相同但是形参列表不同,我们称之为重载函数。 从重载函数的定义上来看,它们应该在形参数量或者形参类型上有所不同,和返回值的类型没有任何关系 注:main 函数不能重载重载和const 形参形参为值变量int fun(int a){}int fun(const int a){} //重复定义fun定义为const的变量,只是把当做左值进行修改时,才会报错。因此原创 2017-10-27 23:26:06 · 348 阅读 · 0 评论 -
C++泛型算法
泛型算法=模板+迭代器问题:首先我们利用随机数,然后对这些随机数从小到大排序。 vector 还是使用我们自定义的vector,参加《vector第四步修炼之道》博文。 测试函数:#include<iostream>#include<time.h>//#include "vectorAllocate.h"//#include "vectorAllocateIterator.h"#incl原创 2017-12-15 22:36:19 · 278 阅读 · 0 评论