21xrx.com
2024-09-20 00:56:30 Friday
登录
文章检索 我的文章 写文章
C++中利用vector实现去重操作
2023-07-02 11:04:02 深夜i     --     --
C++ vector 去重操作

在C++中,vector是一种常见的容器,它可以存储不同类型的数据,并提供了方便的操作方法。在开发中,我们经常需要进行去重操作,即将重复的元素删除,只保留其中一个。下面我们就来介绍在C++中如何利用vector实现去重操作。

首先,我们需要先创建一个vector,并向其中添加一些元素,如下所示:


vector<int> nums;

nums.push_back(1);

nums.push_back(2);

nums.push_back(3);

nums.push_back(2);

nums.push_back(4);

nums.push_back(1);

接下来,我们只需要遍历vector中的每个元素,在另外一个vector中记录下已经存在的元素,如果当前元素不在记录中,则将其添加到新的vector中。


vector<int> result;

vector<int> record;

for (int i = 0; i < nums.size(); i++)

{

  if (find(record.begin(), record.end(), nums[i]) == record.end())

  {

    result.push_back(nums[i]);

    record.push_back(nums[i]);

  }

}

在上面的代码中,我们使用了STL中的find函数来判断当前元素是否已经存在于记录vector中。如果不存在,我们就将其添加到结果vector和记录vector中。

最后,我们可以输出去重后的结果:


for (int i = 0; i < result.size(); i++)

{

  cout << result[i] << " ";

}

完整的代码如下:


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

int main()

{

  vector<int> nums;

  nums.push_back(1);

  nums.push_back(2);

  nums.push_back(3);

  nums.push_back(2);

  nums.push_back(4);

  nums.push_back(1);

  vector<int> result;

  vector<int> record;

  for (int i = 0; i < nums.size(); i++)

  {

    if (find(record.begin(), record.end(), nums[i]) == record.end())

    {

      result.push_back(nums[i]);

      record.push_back(nums[i]);

    }

  }

  for (int i = 0; i < result.size(); i++)

  {

    cout << result[i] << " ";

  }

  return 0;

}

通过上面的代码,我们可以实现C++中对vector的去重操作。这种方法简单易懂,实现也很方便,是处理向量数据时常用的方法之一。

  
  

评论区

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