c++ - C++:“唯一向量”数据结构
问题描述
我需要一个像 std::vector 或 std::list 这样的数据结构,其元素将是唯一的。大多数时候我会调用 push_back ,有时可能会擦除。当我插入一个已经存在的元素时,我需要通过一些布尔值或异常来通知我。
它应该具有的最重要的属性:插入的顺序。每次我迭代它时,它都应该按照插入的顺序返回元素。
我们可以换个思路:保证元素唯一性的队列。但我不想弹出元素,而是想像我们对向量或列表一样迭代它们。
什么是满足我需求的最佳数据结构?
解决方案
我更喜欢使用 std::unordered_set 将现有元素存储在 std::vector 中,它具有更快的 O(1) 查找时间,而 std::set 的查找时间为 O(logn)。
推荐阅读
- sql - 连接子句从两个表返回结果 SQL Server
- angularjs - Bootstrap + AngularJs 轮播
- linux - 确定 linux 中文件读取的最佳缓冲区大小
- sql - 在 laravel 中使用 select 和 count 进行查询
- javascript - 匹配后立即替换字符的正则表达式
- database - 哪一层负责确保数据完整性
- sql - 来自 JPA 查询的重复数据(sql 约束)
- python - 二进制数组:确定一个数组中的所有 1 是否在另一个数组中的第一个 1 之前
- python - Pytorch:输出wrt参数的梯度
- javascript - 如何通过 CloudFront 将媒体上传到 AWS S3