首页 > 解决方案 > C++:“唯一向量”数据结构

问题描述

我需要一个像 std::vector 或 std::list 这样的数据结构,其元素将是唯一的。大多数时候我会调用 push_back ,有时可能会擦除。当我插入一个已经存在的元素时,我需要通过一些布尔值或异常来通知我。

它应该具有的最重要的属性:插入的顺序。每次我迭代它时,它都应该按照插入的顺序返回元素。

我们可以换个思路:保证元素唯一性的队列。但我不想弹出元素,而是想像我们对向量或列表一样迭代它们。

什么是满足我需求的最佳数据结构?

标签: c++data-structuresunique

解决方案


我更喜欢使用 std::unordered_set 将现有元素存储在 std::vector 中,它具有更快的 O(1) 查找时间,而 std::set 的查找时间为 O(logn)。


推荐阅读