template<class T>
void swap(T &a, T &b)
{
T t;
t = a;
a = b;
b = t;
}
Run Code Online (Sandbox Code Playgroud)
更换
void swap(int &a, int &b)
{
int t;
t = a;
a = b;
b = t;
}
Run Code Online (Sandbox Code Playgroud)
这是我能提出的最简单的例子,但是应该有许多其他复杂的函数.如果可能的话,我应该创建所有我写的模板化方法吗?
这样做有什么不利之处吗?
谢谢.
Kor*_*icz 11
通用性具有可重用的优点.但是,只有在以下情况下才能写出通用的
但是,了解您的标准库.您提交的案例已经在STL中std::swap.
此外,请记住,在使用模板进行一般编写时,您可以使用模板特化来优化特殊情况.但是,当它需要性能时,总是要它,而不是你写它.
另请注意,这里有运行时和编译时性能的问题.基于模板的解决方案增加了编译时间.内联解决方案可以但不能减少运行时间.
`原因"过早的优化和通用性是所有邪恶的根源".你可以引用我-_-.