c++交换两个结构体数组
时间: 2024-05-25 16:05:26 浏览: 143
要交换两个结构体数组,可以使用一个临时的结构体数组作为中介。首先将第一个结构体数组的值复制到临时数组中,然后将第二个结构体数组的值复制到第一个数组中,最后将临时数组的值复制到第二个数组中。这样就完成了两个结构体数组的交换。
具体步骤如下:
1. 创建一个临时的结构体数组temp,与要交换的两个数组的大小相同。
2. 将第一个数组的值复制到temp数组中。
3. 将第二个数组的值复制到第一个数组中。
4. 将temp数组的值复制到第二个数组中。
代码示例:
```C++
#include <iostream>
using namespace std;
struct Stu {
string name;
int age;
double score;
};
void swapArrays(Stu array1[], Stu array2[], int size) {
Stu temp[size];
for (int i = 0; i < size; i++) {
temp[i] = array1[i];
array1[i] = array2[i];
array2[i] = temp[i];
}
}
int main() {
Stu arr1[3] = {{"张三", 25, 87.5}, {"李四", 24, 92.4}, {"王五", 27, 78.2}};
Stu arr2[3] = {{"赵六", 35, 90.1}, {"孙七", 22, 85.3}, {"钱八", 29, 93.7}};
cout << "交换前:" << endl;
cout << "数组1:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr1[i].name << " 年龄:" << arr1[i].age << " 分数:" << arr1[i].score << endl;
}
cout << endl;
cout << "数组2:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr2[i].name << " 年龄:" << arr2[i].age << " 分数:" << arr2[i].score << endl;
}
cout << endl;
swapArrays(arr1, arr2, 3);
cout << "交换后:" << endl;
cout << "数组1:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr1[i].name << " 年龄:" << arr1[i].age << " 分数:" << arr1[i].score << endl;
}
cout << endl;
cout << "数组2:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr2[i].name << " 年龄:" << arr2[i].age << " 分数:" << arr2[i].score << endl;
}
cout << endl;
return 0;
}
```
阅读全文