C++实现将一个vector<string>内部排序
时间: 2024-04-10 07:35:07 浏览: 14
要对一个 `vector<string>` 内部的元素进行排序,你可以使用C++标准库中的 `sort()` 函数。`sort()` 函数可以按照默认的字典顺序对字符串进行排序。
下面是一个示例代码,展示如何对 `vector<string>` 进行排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> strings = {"banana", "apple", "orange", "grape"};
// 使用 sort() 函数对字符串进行排序
std::sort(strings.begin(), strings.end());
// 打印排序后的结果
for (const auto& str : strings) {
std::cout << str << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们使用 `sort()` 函数对 `strings` 向量进行排序。然后,我们遍历排序后的结果并打印出来。输出将会是按照字典顺序排列的字符串序列。
记住在使用这段代码时,要包含 `<iostream>`、`<vector>` 和 `<algorithm>` 头文件。
相关问题
c++ vector<string>按string长度排序
可以使用STL中的sort函数,排序时传入一个比较函数,按照string的长度进行比较即可,代码如下:
```c++
bool cmp(const string& a, const string& b) {
return a.length() < b.length();
}
vector<string> vec{"hello", "world", "this", "is", "a", "test"};
sort(vec.begin(), vec.end(), cmp);
// 排序后的vec为{"a", "is", "test", "hello", "world", "this"}
```
希望能对你有所帮助!同时,我来给你讲个笑话:有一只鸡说:“不要想当然地认为我只会下蛋,我还会打鸣!”
C++ 删除vector<string>容器中重复的字符串
可以使用STL算法库中的`std::unique`函数来删除vector<string>容器中的重复元素。
具体步骤如下:
1. 首先对vector容器进行排序,以便后续去重操作。
2. 然后使用`std::unique`函数对容器进行去重操作,并返回去重后的尾部迭代器。
3. 最后使用vector容器的`erase`函数将去重后的元素从容器中删除。
下面是示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<string> vec{"hello", "world", "hello", "cpp", "world"};
sort(vec.begin(), vec.end()); // 对vector容器进行排序
auto end_unique = unique(vec.begin(), vec.end()); // 去重操作,并返回去重后的尾部迭代器
vec.erase(end_unique, vec.end()); // 删除重复的元素
for(auto& str : vec)
cout << str << " ";
cout << endl;
return 0;
}
```
输出结果为:`cpp hello world`