我有以下循环(其中:Array<T> elements;
):
while (lengths[tempElement] == START) {
T next = elements[tempElement];
elements[tempElement] = elementToFind;
tempElement = next;
}
我想使用以下swap
函数:
void swap(T& firstElement, T& secondElement) {
T temp = firstElement;
firstElement = secondElement;
secondElement = temp;
}
为了缩短代码。所以我用:
swap(elements[tempElement],elementToFind);
但是我认为它并没有达到我的期望。如何使用该交换功能?
答案 0 :(得分:0)
您所需的代码使用T &operator=(T const&)
,而std::swap
使用T &operator=(T&&)
。
如果希望它切换为使用复制构造函数,则可以重载std::swap
,如图here所示。