我在列表中保存了几个项目。我想将已经处理过的项目添加到数据结构中(这在我的情况下是有意义的,即使您可能想知道为什么)。当我从列表中处理下一个项目时,我首先想确定它是否已被处理过,所以我们可以这样说:
if(element_is_in_datastructure(current_element)) {
do this
}
else
{
do that
add_element_to_datastructure(current_element)
}
我的问题是,什么是理想的数据结构,检查元素是否在其中不会花费太长时间。目前我没有太多元素(最多30个)将被添加到数据结构中,但这个数字可能会增加,我不想失去性能。
答案 0 :(得分:1)
您可以使用map
例如std::unordered_map
将您的元素存储为keys
。
然后检查他们的存在,例如
if(!yourMap.count(element))
{
// your element is not in the structure
}
此发现需要在地图的大小中以对数时间结束。