常见问题解答

1、template的作用

模板函数:
  • 不是一个确定的函数,编译器不会为其生成可执行代码。

  • 定义模板函数,只是一个对函数功能框架的描述

  • 具体执行时候,将根据传递的实际参数,决定其功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template<class T>
void Swap(T &x, T &y)
{
T tmp = x;
x = y;
y = tmp;
}
int main()
{
int a = 2, b = 9;
Swap(a,b);    //编译器自动生成 void Swap (int &, int &)函数
double c = 2.9, d = 3.2;
Swap(c, d);
    char *a = "abc",*b = "def"; //编译器自动生成 void Swap (char &, char &)函数
Swap(a,b);
cout<<"a="<<a<<" "<<"b="<<b<<endl;
return 0;
}

C++模板函数_咸鱼不贤的博客-CSDN博客_c++ 模板函数

2、STL的作用

  • STL 标准模板库

  • STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。

  • 从根本上说,STL 是一些容器、算法和其他一些组件的集合,所有容器和算法都是总结了几十年来算法和数据结构的研究成果,汇集了许多计算机专家学者经验的基础上实现的,因此可以说,STL 基本上达到了各种存储方法和相关算法的高度优化。

  • STL 可以更加方便灵活地处理数据。

表 2 C++ STL头文件