21xrx.com
2024-12-22 23:02:43 Sunday
登录
文章检索 我的文章 写文章
C++中unique的使用方法
2023-06-22 12:09:10 深夜i     --     --
C++ unique 去重 排序 容器

在C++中,unique是一个非常有用的函数,它可以删除容器中重复的元素,并将其移到容器的末尾。这个函数接受两个迭代器(begin和end),并返回一个指向容器的新结尾的迭代器。

使用unique的方法很简单,只需要将要去除重复的容器传递给unique函数,然后对结果进行处理。以下是一个示例代码:


#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int main() {

 vector<int> nums 5;

 

 // 去除重复元素

 auto end = unique(nums.begin(), nums.end());

 

 // 输出去重后的结果

 for (auto it = nums.begin(); it != end; it++) {

  cout << *it << " ";

 }

}

输出结果为:1 2 3 4 5

在上面的代码中,我们首先定义了一个vector容器nums,并初始化了一些元素。然后,我们使用unique函数将重复的元素移动到容器的后面,并返回一个新的结尾位置。最后,遍历容器的元素,输出去重后的结果。

需要注意的是,unique函数只会将重复的元素移动到容器的末尾,并不会真正删除它们。如果需要删除重复元素,还需要使用vector的erase函数:


nums.erase(end, nums.end());

在这里,我们将容器内的重复元素删除,从新结尾位置到容器的最后一个元素。

除了vector,unique函数也适用于其他STL容器,包括list、set、map等。需要注意的是,在使用unique函数时,容器内的元素需要先进行排序,才能正确去重。

综上所述,unique函数是一个非常实用的STL算法函数,在C++开发中经常被使用。需要将注意的是,为了正确使用它,需要掌握好其使用方法及其对不同类型的容器的作用,并结合vector的erase函数进行综合处理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复