vector去掉重复项
时间: 2023-06-13 08:02:15 浏览: 49
可以使用STL中的`std::unique`函数来去除vector中的重复项。这个函数会将所有相邻的重复元素都移到vector的尾部,然后返回一个迭代器,指向vector中不重复的部分的结尾。最后再使用`std::vector::erase`函数将重复元素删除即可。
示例代码如下:
```c++
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 2, 4, 3, 5, 6, 6};
std::sort(vec.begin(), vec.end()); // 先对vector进行排序
auto end = std::unique(vec.begin(), vec.end()); // 去重
vec.erase(end, vec.end()); // 删除重复元素
return 0;
}
```
执行完这段代码后,`vec`中将只剩下不重复的元素:`{1, 2, 3, 4, 5, 6}`。
相关问题
vector去掉重复元素
可以使用以下代码来去掉Vector中的重复元素:
```
private Vector getNoSameObjectVector(Vector vector){
Vector tempVector = new Vector();
HashSet set = new HashSet(vector);
tempVector.addAll(set);
return tempVector;
}
```
这段代码使用了HashSet来去除重复元素,并将结果存入一个新的Vector中。HashSet是一种不允许重复元素的集合,所以将Vector中的元素添加到HashSet中会自动去除重复元素。然后,将HashSet中的元素添加到新的Vector中,即可得到去重后的Vector。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [去掉一个 Vector 集合中重复的元素](https://blog.csdn.net/qq_23994787/article/details/78153877)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
c++vector去除重复元素
你可以使用`std::vector`的`erase`和`std::unique`函数来去除重复元素。首先,使用`std::sort`函数对向量进行排序,这将使重复的元素相邻。然后,使用`std::unique`函数将重复的元素移到向量的末尾,并返回指向新的尾部的迭代器。最后,使用`erase`函数删除重复元素之后的部分。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
// 创建一个包含重复元素的向量
std::vector<int> vec = {1, 2, 3, 2, 4, 1, 5, 6, 3, 4};
// 对向量进行排序
std::sort(vec.begin(), vec.end());
// 使用 std::unique 函数去除重复元素
auto last = std::unique(vec.begin(), vec.end());
// 使用 erase 函数删除重复元素之后的部分
vec.erase(last, vec.end());
// 输出去除重复元素后的向量
for (const auto& element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
```
运行以上代码,输出将为:1 2 3 4 5 6,即去除了重复的元素。