【数据结构实战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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?