1、数据结构课程的特点:
— 专注于数据元素之间的关系
— 专注于特定结构之上的算法
— 数据结构课程并不关注数据元素的具体类型
如何为数据结构的学习选择合适的语言?
唐老师经验:支持泛型编程的语言是最适合数据结构课程的学习。
2、泛型编程的概念:不考虑具体数据类型的编程方式。
— C++中的函数模板
(1)一种特殊的函数可用于不同类型进行调用
(2)看起来和普通函数很相似,区别是类型可被参数化
— C++中的类模板
(1)以相同的方式处理不同的类型
(2)在类声明前使用templete进行标识
(3)用于说明类中使用的泛指类型T
(4)类模板只能显式指定具体类型,无法自动推导
示例代码:
#include <iostream>
using namespace std;
template <typename T>
void Swap(T& a, T& b)
{
T t = a;
a = b;
b = t;
}
template <typename T>
class Op
{
public:
T process(T v)
{
return v * v;
}
};
int main()
{
int a = 2;
int b = 1;
Swap(a, b);
cout << "a = " << a << " " << "b = " << b << endl;
double c = 0.01;
double d = 0.02;
Swap<double>(d, c);
cout << "c = " << c << " " << "d = " << d << endl;
Op<int> opInt;
Op<double> opDouble;
cout << "5 * 5 = " << opInt.process(5) << endl;
cout << "0.3 * 0.3 = " << opDouble.process(0.3) << endl;
return 0;
}