gpt4 book ai didi

c++ - 重载 'swap(char&, char&)' 的调用不明确

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:12 25 4
gpt4 key购买 nike

我无法弄清楚下面的 swap(arr[i++],arr[n--]); 有什么歧义。请教育我错误的方法。

#include <iostream>
#include <string>

template <typename T> void swap ( T & a, T & b )
{
T temp = b;
b = a;
a = temp;
}

template <typename T> void reverse_array ( T * arr, size_t n )
{
size_t i = 0;
while (i < n) swap(arr[i++],arr[n--]); // problem line
}


int main ()
{
char mystr [] = "Obama smokes";
reverse_array(mystr, sizeof(mystr)/sizeof(char));
return 0;
}

最佳答案

codepad has an implicit using namespace std; ,这是一个非常糟糕的主意,会使您的 swapstd::swap 发生冲突。您可以使用 ::swap 代替,但不能在 fixing your bounds problem 之前使用通过传递 sizeof mystr - 2 而不是 sizeof(mystr)/sizeof(char)

关于c++ - 重载 'swap(char&, char&)' 的调用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29860232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com