用cin输入数组国家名称并排序
时间: 2024-11-06 13:14:36 浏览: 31
在C++中,你可以使用`cin`从用户那里读取字符串数组表示的国家名称,并使用标准库函数如`std::sort`对它们进行排序。这里是一个简单的步骤示例:
首先,你需要包含必要的头文件,如`iostream`、`string`以及如果需要自定义比较规则,可以包含`algorithm`:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm> // 包含用于排序的算法
```
然后定义一个结构体或类来存储国家名及其索引,因为`std::sort`默认依据元素的自然顺序排序,对于字符串通常就是字典序:
```cpp
struct Country {
std::string name;
int index; // 用于记录原始位置
};
```
接着,创建一个动态数组或向量来存储国家名,并用`cin`读取:
```cpp
std::vector<Country> countries;
int n;
std::cout << "请输入国家数量: ";
std::cin >> n;
countries.resize(n);
for (int i = 0; i < n; ++i) {
std::cout << "请输入第" << i+1 << "个国家名称: ";
std::cin >> countries[i].name;
countries[i].index = i; // 记录原始索引
}
```
最后,调用`std::sort`并传入一个自定义的比较函数,以便按照国家名称的字母顺序进行升序排列:
```cpp
// 自定义比较函数,假设我们只按名字排序
bool compareByName(const Country& a, const Country& b) {
return a.name < b.name;
}
// 排序
std::sort(countries.begin(), countries.end(), compareByName);
```
现在,`countries`向量就按名称排序了。
阅读全文
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)