“造地基”的C++ (十) 模板与群体数据

  • 函数模板
  1. 用法:

创建一个通用功能的函数

支持多种不同形参

简化重载函数的函数体设计

     2.函数模板定义语法

语法形式:template<模板参数表>           函数定义

     3.模板参数表的内容

类型参数:class(或typename)标识符

常量参数:类型说明符  标识符

模板参数:template<参数表>  class 标识符

     4.注意

一个函数模板并非自动可以处理所有类型的数据;只有能够进行函数模板中运算的类型,可以作为类型参数;自定义的类需要重载模板中的运算符,才能作为类型实参

 

  • 类模板
  1. 类模板的作用

使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、成员函数的返回值能取任意类型(包括基本类型和用户自定义类型)

     2.类模板的声明

Template<模板参数表>  class类名{ 类成员声明};

如果在类模板以外定义其他成员函数,则需要采用以下形式:

Template<模板参数表>  类型名 类名 <模板参数标识符列表>::函数名(参数表)

 

  • 数组类(直接访问的线性群体)
  1. 静态数组是具有固定元素个数的群体,其中的元素可以通过下标直接访问
  2. 缺点:大小在编译时就已经确定,在运行时无法修改
  3. 动态数组由一系列位置连续的,任意数量相同类型的元素组成
  4. 优点:其元素个数可在程序运行时改变

 

  • 链表的概念和结点类模板
    1. 顺序访问的线性群体——链表类
      1. 链表是一种动态数据结构,可以用来表示顺序访问的线性群体
      2. 链表是由系列结点组成的,结点可以在运行时动态生成
      3. 每一个结点都包括数据域和指向链表中下一个结点的指针(即下一个结点的地址),如果链表每个结点中只有一个指向后继结点的指针,则该链表称为单链表。
  1. 链表的基本操作
    1. 生成链表
    2. 插入结点
    3. 查找结点
    4. 删除结点
    5. 遍历链表
    6. 清空链表

 

  • 栈类模板
  1. 栈是只能从一端访问的线性群体,是一种后进后出的数据结构
  2. 栈的基本状态
    1. 栈空
    2. 栈满
    3. 一般状态
  3. 栈的基本操作
    1. 初始化
    2. 入栈(压栈)
    3. 出栈
    4. 清空栈
    5. 访问栈顶元素
    6. 检测栈的状态(满、空)

 

  • 队列类
  1. 队列是只能向一端添加元素,从另一端删除元素的线性群体。是一种先进先出的结构。
  2. 队列的基本状态
    1. 对空
    2. 队满
    3. 一般状态

 

  • 排序概述
    1. 排序:将数组元素的任意序列,重新排列成一个按关键字有序的序列
    2. 数据元素:数据的基本单位。在计算机中通常作为一个整体进行考虑。一个数据元素可由若干数据项组成。
    3. 关键字:数据元素中某个数据项的值,用它可以标识一个数据元素。
    4. 在排序中需要完成的两种基本操作
      1. 比较两个数的大小
      2. 调整元素在序列中的位置
    5. 内部排序与外部排序
      1. 内部排序:待排序的数据元素存放在计算机内存中进行的排序过程
      2. 外部排序:待排序的数据元素数量很大,以至内存中一次不能容纳全部数据,在排序过程中尚需对外存进行访问的排序过程。

 

  • 选择排序:每次从待排序的序列中选择一个关键字最小的元素,(当需要按关键字升序排序时),顺序排在已排序序列的最后,直至全部排完。

 

  • 交换排序:两两比较待排序序列中的元素,并交换不满足顺序要求的各元素,直到全部满足顺序要求为止。

 

  • 查找
  1. 顺序查找:从序列的首元素开始,逐个元素与待查找的关键字进行比较。
  2. 二分法查找(折半查找):对于已按关键字排序的序列,经过一次比较,可将序列分割成两部分,然后只有在有可能包含待查元素的一部分中继续查找,并根据试探结果继续分割,直到找到或找不到为止。

 

*********************************************************************************************************************************************************这一篇更新地比较慢了,也由此可以看出进入2018年8月后w'd我的松懈,从明天开始,继续努力,加油!每一天都不能懈怠,因为懈怠会成为一种习惯,那就是lan'懒病。而勤快也会成为一种习惯,那就是成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值