使用通用交换函数来缩短代码

时间:2019-06-16 01:14:37

标签: c++

我有以下循环(其中: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);

但是我认为它并没有达到我的期望。如何使用该交换功能?

1 个答案:

答案 0 :(得分:0)

您所需的代码使用T &operator=(T const&),而std::swap使用T &operator=(T&&)

如果希望它切换为使用复制构造函数,则可以重载std::swap,如图here所示。