需要一张地图,但只需要知道是否包含?

时间:2012-06-05 03:48:27

标签: c++

我想知道是否有更适合我需求的结构。

我需要一本字典或字符串(单词)。我需要知道的是,如果给定的单词在字典中。

制作字符串,字符串的映射似乎浪费了内存。还有更好的方法吗?

由于

4 个答案:

答案 0 :(得分:5)

使用std::set<string>。您可以使用std::set::find检查单词是否存在。

答案 1 :(得分:0)

你想要的是std::set< std::string >

答案 2 :(得分:0)

Naveen和K-ballo的答案是正确的。这里可以帮助您选择合适的STL容器以满足您的需求。注意:这不考虑C ++ 11类型,但它将帮助您开始使用STL:enter image description here

答案 3 :(得分:0)

std::set的替代方案是std::unordered_set。第一个通常实现为红黑树(对数复杂度),第二个是哈希表(平均恒定时间复杂度)。 unordered_set在C ++ 11,C ++ 03 TR1和Boost中可用。