我想知道是否有更适合我需要的结构。
我需要一本字典或字符串(单词)。我只需要知道一个给定的单词是否在字典中。
制作字符串,字符串的映射似乎很浪费内存。有没有更好的办法?
谢谢
使用std::set<string>
. 您可以使用std::set::find
来检查一个单词是否存在。
你想要的是一个std::set< std::string >
.
Naveen 和 K-ballo 的答案是正确的。在为您的需求选择正确的 STL 容器时,这里有一些内容可能会对您有所帮助。注意:这不考虑 C++11 类型,但它会帮助您开始使用 STL:
的替代方案std::set
是std::unordered_set
。第一个通常实现为红黑树(对数复杂度),第二个是哈希表(平均常数时间复杂度)。unordered_set
在 C++11、C++03 TR1 和 Boost 中可用。