交换数组中的位置

Swapping positions in an array

本文关键字:位置 数组 交换      更新时间:2023-10-16

如何在c++中交换列表中两个元素的位置(使用数组)
使用数组。这是我应该完成这个任务的功能。我给数组中的不同元素赋了一个名字。这里的变量已经定义过了。

    while (i <= 5)
    {
        if (arr[i] == name1){
            arr[i] = x;
            x = tempName;
            y = x;
            x = y;
            cout << y << x << endl;
        }
        if (arr[i]== name2){
            arr[i] = y;
            y = tempName;
            x = y;
            y = x;
            cout << y << x << endl;
        }
             i = i + 1;
    }
    if (arr[i] != name1 || arr[i] != name2)
    {
        cout << "You have to pick a name from the line up" << endl;
    }

根据你的问题的标题,这里是如何交换数组的元素:

temporary_element = array[i];
array[i] = array[j];
array[j] = temporary_element;

我没有指定数据类型,因为它们不在你发布的问题。

我想你会想搜索,然后交换这些元素。如果您经常这样做,请尝试使用std::set<>或std::map<>容器。用于在数组中搜索,然后在这里交换它们是一个简单的代码:

    int i = 0;
while (i < N && (name1 != arr[i] || name2 != arr[i]))
    ++i;
int id1 = i;
while (i < N && (name1 != arr[i] || name2 != arr[i]) && arr[id1] != arr[i])
    ++i;
int id2 = i;
if (id2 < N)
{
    auto tmp = arr[id1];
    arr[id1] = arr[id2];
    arr[id2] = tmp;
}