隐式实例化和显式实例化
在实际中经常会遇到很多情况,比如我想要传两种不同类型的变量时,隐式实例化就解决不了了,此时就需要显式实例化去解决。例如
template<class T>
void Swap(T& e1, T& e2)
{
T tmp = e1;
e1 = e2;
e2 = tmp;
}
int main()
{
int a = 1, b = 2;
double c = 1.11, d = 2.22;
//这两个都是隐式实例化(由编译器自己推到出来的变量的类型)
Swap(a, b);
Swap(c, d);
//显式实例化 不让编译器推导出来我自己给的
//Swap(a, (int)d);
//Swap<int>(a, d);
cout << "a = " << a << endl << "b = " << b << endl;
cout << "c = " << c << endl << "d = " << d << endl;
return 0;
}
这个就是显式实例化的用法。
STL简介
STL(standard template libaray-标准模板库) 是c++库中的重要组成部分,他是数据结构和算法的软件框架。
STL的六大组件
STL的六大组件包括了仿函数、算法、迭代器、空间配置器、容器和配置器。其中最重要的就是算法和容器
STL在面试过程中也是一个常考点。
学习STL的要求
要求要将STL熟练使用,了解STL的底层原码 。