用C++输入10个国家名称,用指针数组实现排序输出
时间: 2024-10-13 13:03:36 浏览: 25
C++实现两个有序数组的合并
5星 · 资源好评率100%
在C++中,你可以使用标准库中的`vector`来存储国家名称,然后通过指针转换成动态数组(`array`),再利用`sort`函数对数组进行排序。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含sort函数
// 假设我们有一个结构体Country,包含国家名作为字符串
struct Country {
std::string name;
};
int main() {
const int numCountries = 10; // 国家数量
Country* countries = new Country[numCountries]; // 指针数组,用于存储国家名称
// 输入10个国家名称
for (int i = 0; i < numCountries; ++i) {
std::cout << "请输入第" << i+1 << "个国家的名称: ";
std::cin >> countries[i].name;
}
// 使用vector方便管理内存并按姓名排序
std::vector<Country*> vec_countries(countries, countries + numCountries);
std::sort(vec_countries.begin(), vec_countries.end(), [](const Country* a, const Country* b) {
return a->name < b->name;
});
// 输出排序后的国家名称
for (Country* country : vec_countries) {
std::cout << country->name << "\n";
}
delete[] countries; // 释放动态分配的内存
return 0;
}
```
在这个例子中,我们首先创建了一个`Country`类型的指针数组,并通过循环获取用户输入的国家名称。然后,我们将这个指针数组复制到`std::vector`中,并利用`std::sort`函数进行排序。最后,遍历排序后的`vector`输出结果。
阅读全文