NXstring vector 去重
时间: 2023-09-12 16:02:32 浏览: 91
如果你想对一个 `std::vector<std::string>` 进行去重操作,可以使用 `std::unique` 和 `std::erase` 算法。具体操作如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<std::string> v = {"apple", "banana", "orange", "apple", "pear", "orange"};
std::sort(v.begin(), v.end());
auto last = std::unique(v.begin(), v.end());
v.erase(last, v.end());
for (const auto& s : v)
{
std::cout << s << " ";
}
std::cout << std::endl;
return 0;
}
```
这里使用 `std::sort` 将字符串按照字典序排序,然后使用 `std::unique` 去重,最后使用 `std::erase` 删除重复的元素。运行结果为:
```
apple banana orange pear
```
如果你想对一个 `std::vector<const char*>` 进行去重操作,可以使用 `std::set` 容器。具体操作如下:
```c++
#include <iostream>
#include <vector>
#include <set>
int main()
{
std::vector<const char*> v = {"apple", "banana", "orange", "apple", "pear", "orange"};
std::set<std::string> s(v.begin(), v.end());
v.assign(s.begin(), s.end());
for (const auto& s : v)
{
std::cout << s << " ";
}
std::cout << std::endl;
return 0;
}
```
这里使用 `std::set` 容器将重复的字符串去掉,然后使用 `std::vector::assign` 将去重后的字符串赋值给原来的向量。运行结果同上。
阅读全文