首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用vector<vector<int>>的std::unordered_set删除重复项

vector<vector<int>>的std::unordered_set是用来删除重复项的一个有效工具。下面是如何使用的详细步骤:

  1. 首先,需要包含<vector>和<unordered_set>头文件。
代码语言:txt
复制
#include <vector>
#include <unordered_set>
  1. 创建一个vector<vector<int>>对象,例如:
代码语言:txt
复制
std::vector<std::vector<int>> vec;
  1. 向vec中添加多个vector<int>子向量,每个子向量代表一个集合:
代码语言:txt
复制
vec.push_back({1, 2, 3});
vec.push_back({4, 5, 6});
vec.push_back({1, 2, 3}); // 重复项
vec.push_back({7, 8, 9});
  1. 创建一个std::unordered_set<vector<int>>对象,并将vec中的元素逐个插入到unordered_set中。重复项会自动被删除:
代码语言:txt
复制
std::unordered_set<std::vector<int>> uniqueSet(vec.begin(), vec.end());
  1. 现在,uniqueSet中将只包含没有重复项的子向量。可以遍历unordered_set来查看结果:
代码语言:txt
复制
for (const auto& subVec : uniqueSet) {
    for (const auto& num : subVec) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
}

这样,你就可以使用std::unordered_set删除vector<vector<int>>中的重复项了。

关于unordered_set和vector<vector<int>>的更多信息:

  • unordered_set是一种无序的关联容器,使用哈希表实现。它的查找和插入操作具有常数时间复杂度。
  • vector<vector<int>>是一个二维动态数组,它可以存储一组不定长度的整型向量。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)

腾讯云产品介绍链接地址:腾讯云云服务器 (CVM)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

vector使用方法_vector指针如何使用

大家好,我是架构君,一个会写代码吟诗架构师。今天说一说vector使用方法_vector指针如何使用,希望能够帮助大家进步!!! 一、什么是vector?...三、基本函数实现 1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const...vector中 2.增加函数 void push_back(const T& x):向量尾部增加一个元素X emplace_back:向量尾部增加一个元素X 以下两个相等 std::vector<Vertex...9.capacity 当前vector分配大小 10.size 当前使用数据大小 11.resize 改变当前使用数据大小,如果它比当前使用大,者填充默认值 12.reserve 改变当前vecotr...所分配空间大小 13.erase 删除指针指向数据 14.clear 清空当前vector 15.rbegin 将vector反转后开始指针返回(其实就是原来end-1) 16.rend 将

2.6K20
  • 行为型之解释器模式C++实现

    现实需求:有些问题多次重复出现,而且有一定相似性和规律性。 解释器模式:给分析对象定义一个语言,并定义该语言文法表示,再设计一个解析器来解释语言中句子。...解释器模式中通常使用大量循环和递归调用,当要解释句子较复杂时,其运行速度很慢,且代码调试过程也比较麻烦。 2. 可应用场景比较少。 主要角色。...客户端:用解释器解释方法,通过环境角色间接访问解释器解释方法。 具体案例:小码路接了公司一目,为北大清华学生制作出入证,先找到学校学生可以进步,如果找不到侧拒绝进入校园。...:;unordered_set::const_iterator pos1; for (pos1 = _set.begin();pos1 !...::unordered_set::const_iterator got = _set.find(mess); if(got == _set.end())

    30120

    哈希表:哈希值太大了,还是得用set

    「说明:」 输出结果中每个元素一定是唯一。 我们可以不考虑输出结果顺序。 思路 这道题目,主要要学会使用一种哈希数据结构:unordered_set,这个数据结构可以解决很多类似的问题。...此时就要使用另一种结构体了,set ,关于set,C++ 给提供了如下三种可用数据结构: std::set std::multiset std::unordered_set std::set和std:...:multiset底层实现都是红黑树,std::unordered_set底层实现是哈希表, 使用unordered_set 读写效率是最高,并不需要对数据进行排序,而且还不要让数据重复,所以选择unordered_set...哈希法使用unordered_set C++代码 class Solution { public: vector intersection(vector& nums1, vector...& nums2) { unordered_set result_set; // 存放结果 unordered_set nums_set(nums1

    1K30

    哈希值太大了,还是得用set

    说明:输出结果中每个元素一定是唯一。我们可以不考虑输出结果顺序。 思路 这道题目,主要要学会使用一种哈希数据结构:unordered_set,这个数据结构可以解决很多类似的问题。...此时就要使用另一种结构体了,set ,关于set,C++ 给提供了如下三种可用数据结构: std::set std::multiset std::unordered_set std::set和std...::multiset底层实现都是红黑树,std::unordered_set底层实现是哈希表, 使用unordered_set 读写效率是最高,并不需要对数据进行排序,而且还不要让数据重复,所以选择...C++代码如下: class Solution { public: vector intersection(vector& nums1, vector& nums2...) { unordered_set result_set; // 存放结果 unordered_set nums_set(nums1.begin(),

    48820

    【C++】unordered_map和unordered_set使用 及 OJ练习

    3. unordered_map和unordered_set使用 其实单从使用来说,大家如果学会了我们之前讲C++98那几个关联式容器——set/multiset 和 map/multimap使用的话...然后unordered_set我们也可以简单看一下: 接口也都差不多,只是set系列没有[]和at接口 还是给大家简单演示一下它使用吧: 这使用起来是不是跟set差不多啊,只不过我们看到它这里遍历是无序...,先放到一个vector里面,再分别插入到set和一个unordered_set里面,对比它们插入、查找、删除性能。...代码 #include using namespace std; #include #include #include...main() //{ // const size_t N = 1000000; // // unordered_set us; // set s; // // vector<int

    30310

    c++11&14-STL专题

    在c++里面不得不提一个标准库,就是STL,STL包含很多实用数据结构,如vector,list,map,set等都是我们常用,而c++11也对STL做了一些补充,使得STL内容越来越丰富,可选择也越来越多了...我们在学习数据结构时候都知道,链表在对数据进行插入和删除是比顺序存储线性表有优势,因此在插入和删除操作频繁应用场景中,使用list和forward_list比使用array、vector和deque...使用数据结构为红黑树,且是有序,而std::unordered_map内部是哈希表实现方式,无序。... int main() { std::unordered_set unorder_set; unorder_set.insert(7); unorder_set.insert...std::cout << itor << std::endl; } } std::unordered_set数据存储结构也是哈希表方式结构,除此之外,std::unordered_set在插入时不会自动排序

    30130

    C++系列笔记(九)

    STL提供关联容器包括: std::set——存储各不相同值,在插入时进行排序;容器复杂度为对数; std::unordered_set——存储各不相同值,在插入时进行排序;容器复杂度为常数。...这种容器是C++11新增std::multiset——与set类似,但允许存储多个值相同,即值不需要是唯一std::unordered_multiset——与 unordered_set...类似,但允许存储多个值相同,即值不需要是唯一。...使用pop_back将元素从vector删除所需时间是固定,即不随vector存储元素个数而异。...与vector一样,deque也使用运算符[]以数组语法访问其元素。deque与vector不同之处在于,它还允许您使用push_front和pop_front在开头插入和删除元素。

    1.1K20

    现代C++之容器

    2.vector 2.1 异常安全性 vector 通常保证强异常安全性,如果元素类型没有提供一个保证不抛异常移动构造函数,vector 通常会使用拷贝构造函数。...vector 一个主要缺陷是大小增长时导致元素移动。如果可能,尽早使用 reserve 函数为 vector 保留所需内存,这在 vector 预期会增长很大时能带来很大性能提升。...> // std::unordered_map #include // std::unordered_set #include "output_container.h...关联容器和priority_queue插入和删除操作,以及关联容器查找操作,其复杂度都是 O(log(n)),而无序关联容器实现使用哈希表 ,可以达到平均 O(1)!...但这取决于我们是否使用了一个好哈希函数:在哈希函数选择不当情况下,无序关联容器插入、删除、查找性能可能成为最差情况 O(n),那就比关联容器糟糕得多了。

    1K10

    移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——13.map&&set(无习题)

    vector 等序列容器不同,set 中元素按一定顺序(通常为升序)存储,并且不允许重复元素。由于 set 使用红黑树实现,因此它插入、查找和删除操作时间复杂度为 O(log n)。...= m.end()) { std::cout << "键 2 存在,值为: " << m[2] << std::endl; } 删除元素:可以使用 erase() 函数删除指定键值对。...std::multiset ms; ms.insert(10); ms.insert(5); ms.insert(10); // 允许插入重复元素 删除元素:可以使用 erase() 函数删除元素...std::multimap mm; mm.insert({1, "one"}); mm.insert({1, "uno"}); // 允许插入重复键 查找元素:可以使用...<< std::endl; } // unordered_set 示例 std::unordered_set us = {10, 20, 30, 40};

    9910
    领券