c++ 对vector里的字符串排序
时间: 2023-10-12 18:19:26 浏览: 110
可以使用 `sort` 算法和自定义比较函数来对 `vector` 中的字符串进行排序。比如,如果想按字典序从小到大排序,可以按如下方式实现:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
bool cmp(const std::string& a, const std::string& b) {
return a < b;
}
int main() {
std::vector<std::string> vec = {"apple", "banana", "orange", "pear"};
std::sort(vec.begin(), vec.end(), cmp);
for (auto s : vec) {
std::cout << s << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
apple banana orange pear
```
如果想按字符串长度从小到大排序,可以改写比较函数:
```cpp
bool cmp(const std::string& a, const std::string& b) {
return a.length() < b.length();
}
```
这样排序后的输出结果为:
```
pear apple banana orange
```
相关问题
c++vector转字符串数组
回答:要将一个C++的字符串数组转换为整型vector,可以使用函数void strsToIntVector(const string& str, vector<int>& vs, const string& sp =" ")。这个函数的参数包括待转换的字符串,输出的整型向量以及分隔符。函数的实现方法可以通过分割字符串并将每个分割的部分转换为整型数,然后将其添加到整型向量中。另外,你还可以使用冒泡排序的思想来编写排序函数,该函数使用string类的compare函数来比较字符串的大小,可以对字符串数组进行排序。该函数没有返回值,但是可以通过输出排序后的句子和其长度来验证排序结果。如果你想将一个整型vector转换为字符串数组,可以使用相应的函数来实现。
c++ vector 自定义排序
你可以使用sort函数对vector进行自定义排序。以下是一个示例代码,假设你要对一个vector<string>进行排序,按照字符串的长度从小到大排序:
```
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
bool compare(const string& a, const string& b) {
return a.length() < b.length();
}
int main() {
vector<string> names = {"John", "Mary", "Alice", "Tom"};
cout << "Before sorting: ";
for(auto& name : names) {
cout << name << " ";
}
cout << endl;
sort(names.begin(), names.end(), compare);
cout << "After sorting: ";
for(auto& name : names) {
cout << name << " ";
}
cout << endl;
return 0;
}
```
在这个例子中,我们定义了一个compare函数,它接受两个字符串参数,比较它们的长度并返回比较结果。然后在主函数中,我们调用sort函数,并传入compare作为自定义的比较函数。这样,sort函数会根据compare函数的返回结果对vector进行排序。最后,我们输出排序后的结果。
所以,通过自定义比较函数,你可以根据自己的需求对vector进行排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [【C++】vector数组排序](https://blog.csdn.net/weixin_46308081/article/details/117195502)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]