您当前的位置: 首页 >  数据结构
  • 2浏览

    0关注

    880博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【数据结构实战C++】8 泛型编程

CodeAllen嵌入式编程 发布时间:2020-04-15 00:40:53 ,浏览量:2

【数据结构实战C++】8 泛型编程

作者 CodeAllen ,转载请注明出处

数据结构的特点

  • -专注于数据元素之间的关系
  • -专注于特定结构之上的算法

也就是说数据结构并不关注数据元素的具体类型(这个是很关键的一个概念)

如何为数据结构的学习选择合适的编程语言?

从上边的分析可以知道,支持泛型编程的语言最适合学习数据结构

c++是支持泛型编程的,其中的模板就是泛型编程

泛型编程概念 -不考虑具体数据类型的编程方式

对于swap函数可以考虑下方的泛型写法

void swap(T& a , T& b)
{
    T t = a;
    a = b;
    b = t;
} 

swap泛型写法中的T并不是一个具体的数据类型,而是泛指任意的数据类型

c++中的函数模板 -一种特殊的函数可用不同类型进行调用 -看起来和普通函数很相似,区别是类型可以被参数化

template
void swap(T& a , T& b)
{
    T t = a;
    a = b;
    b = t;
}

函数模板的语法规则

  • -template关键字用于声明开始进行泛型编程
  • -typename 关键字用于声明泛型类型 在这里插入图片描述

函数模板的使用 -自动类型推导调用 -具体类型显示调用

int a = 0;
int b = 1;

swap(a, b);   //自动推导

float c = 2;
float d = 3;

swap(c, d);  //显示调用

实验:函数模板

#include 
using namespace std;
template 
void Swap(T& a, T& b)
{
    T t = a;
    a = b;
    b = t;
}
int main()
{
    int a = 2;
    int b = 1;
    Swap(a, b);
    cout             
关注
打赏
1665938897
查看更多评论
0.0419s