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