用于查找元素的数据结构

时间:2018-05-28 07:26:33

标签: c++ performance data-structures find

我在列表中保存了几个项目。我想将已经处理过的项目添加到数据结构中(这在我的情况下是有意义的,即使您可能想知道为什么)。当我从列表中处理下一个项目时,我首先想确定它是否已被处理过,所以我们可以这样说:

if(element_is_in_datastructure(current_element)) {
   do this
}
else
{
   do that
   add_element_to_datastructure(current_element)
}

我的问题是,什么是理想的数据结构,检查元素是否在其中不会花费太长时间。目前我没有太多元素(最多30个)将被添加到数据结构中,但这个数字可能会增加,我不想失去性能。

1 个答案:

答案 0 :(得分:1)

您可以使用map例如std::unordered_map将您的元素存储为keys。 然后检查他们的存在,例如

if(!yourMap.count(element))
{
   // your element is not in the structure
}

此发现需要在地图的大小中以对数时间结束。