我该如何实现以下内容
template <typename ITERATOR> void Swap (ITERATOR a, ITERATOR b) {
...
}
Run Code Online (Sandbox Code Playgroud)
因此Swap(a,b)交换a和b指向的值.换句话说:如何在不知道数据类型的情况下创建第三个变量?
有iter_swap只为那份工作:
std::iter_swap(a, b);
Run Code Online (Sandbox Code Playgroud)
此外,如果您可以使用c ++ 11,您可以使用decltype:
std::remove_reference<decltype(*a)>::type c = *a;
*a = *b;
*b = c;
Run Code Online (Sandbox Code Playgroud)