交换阵列中的位置

时间:2015-10-27 01:11:57

标签: c++

如何在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;
    }

2 个答案:

答案 0 :(得分:2)

通过问题的标题,这里是如何交换数组的元素:

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

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

答案 1 :(得分:0)

我认为您想要搜索,然后交换这些元素。 如果您执行了大量这些操作,请尝试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;
}