首页 > 解决方案 > 使用通用交换函数来缩短代码

问题描述

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

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

标签: c++

解决方案


您想要的代码使用T &operator=(T const&)while std::swapuses T &operator=(T&&)

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


推荐阅读