队列是一种限定存取位置的线性表,允许插入的一端叫做队尾(rear),允许删除的一端叫做队首(front)。
队列具有FIFO的性质
队列的存储表示也有两种方式:基于数组的,基于列表的。基于数组的叫做顺序队列,基于列表的叫做链式队列。
一下是基于动态数组的顺序队列的模板类的实现。
顺序队列的抽象基类如下所示:只提供了接口和显式的默认构造函数和析构函数,在派生类中调用。
#i...
分类:
其他好文 时间:
2015-06-23 15:50:28
阅读次数:
191
了解C++默认编写并调用哪些函数本节有两处知识点。首先
对于一个class
1.如果class中没有任何构造函数,那么编译器为class声明一个default默认构造函数。
2.如果class没有析构函数、copy构造函数、copy assignment运算符则class声明这三个函数。
3.只有当调用析构函数、copy构造函数、copy assignment运算符时,编译器才生成它们,请大...
分类:
编程语言 时间:
2015-06-21 09:19:57
阅读次数:
115
LinearList.h抽象基类:
#ifndef LINEARLIST
#define LINEARLIST
//线性表的抽象基类
template
class LinearList
{
public:
LinearList(){};//如果派生类不需要向基类构造函数传递参数,则就会调用基类默认构造函数,所以,要么不写,要么就自己写默认构造函数。
~LinearLis...
分类:
其他好文 时间:
2015-06-17 18:16:25
阅读次数:
409
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。pair a("James", "Jo...
分类:
编程语言 时间:
2015-06-12 18:57:03
阅读次数:
128
一、问题 在C++中,编译器会为空类提供哪些默认成员函数?分别有什么样的功能呢?二、详解1、空类,声明时编译器不会生成任何成员函数对于空类,编译器不会生成任何的成员函数,只会生成1个字节的占位符。 有时可能会以为编译器会为空类生成默认构造函数等,事实上是不会的,编译器只会在需要的时候生成6个成员函数...
分类:
编程语言 时间:
2015-06-12 09:59:52
阅读次数:
239
标准string对象支持长度可变的字符串操作。使用它需要包含头文件
,它位于std命名空间下。1.string对象的定义和初始化string s1; //默认构造函数,s1为空串
string s2(s1); //将s2初始为s1的一个副本
string s3("value"); //将s3初始为一个字符串字面值的副本
string s4(n,'c'); //将s4初始为字符串'c'的n个副本需要...
分类:
其他好文 时间:
2015-06-11 14:41:00
阅读次数:
433
我们初学C++时可能会对类的构造函数,复制构造函数,析构函数有点疑问。整理如下(个人见解,如有错误,还望指正。): 1.构造函数 根据构造函数的定义知它的作用是初始化类的数据成员或内嵌类的对象,所以它的参数表就应该是它要初始化的对象类型。构造函数分三类:默认构造函数、构造函数、委托构造函数。 默认....
分类:
编程语言 时间:
2015-06-06 00:09:30
阅读次数:
193
一个类,如果没有任何的用户声明的的构造函数,那么会有一个默认的构造函数被隐式地声明出来。这个被隐式声明的构造函数,究竟什么时候被合成、被编译器合成的默认构造函数究竟执行怎么样的操作,编译器如何处理用户定义的构造函数,就是本文要探讨的问题。 1、默认构造函数何时被合成 如果一个类没有任何的用户声明的构造函数,那么在当编译器需要的时候,编译器会为类合成一个默认的构造函数,它只用于执行编译器所需要...
分类:
编程语言 时间:
2015-05-30 01:49:55
阅读次数:
226
构造函数:默认构造函数:
构造一个空列表:template void List::init() { //列表初始化,在创建列表对象时统一调用
header = new ListNode; //创建头哨兵节点
trailer = new ListNode; //创建尾哨兵节点
header->succ = trailer; header-...
分类:
其他好文 时间:
2015-05-29 10:04:56
阅读次数:
99
当我们定义一个类时,如何没有声明任何函数,那么C++编译器会默认提供4个函数:默认构造函数、复制构造函数、赋值操作符函数、析构函数,并且这些函数默认都是public且inline的。因此,当你定义如下类: 1 class Empty 2 { 3 4 }; 5 6 // 等价于定义如下类:...
分类:
编程语言 时间:
2015-05-25 08:33:11
阅读次数:
145