C++使用没有值,只有键的映射的字典

Dictionary in C++ using a Map with no values, only keys

本文关键字:映射 字典 C++      更新时间:2023-10-16

我正在用 c++ 实现某种单词查找,虽然实现映射的代码在那里,但我想确保它是否有效,使用带有键和值的映射作为 std::string,并且仅使用键作为查找而没有要返回的值。

    std::vector< std::string> DictionLines;
    Reader DictionReader(Dictionary);
    DictionLines = DictionReader.getLines();
    std::map<std::string, std::string> DictionaryM;
    for (int t = 0; t < DictionLines.size(); ++t) {
        DictionaryM.insert(std::pair<std::string, std::string>(DictionLines.at(t), DictionLines.at(t)));
    }

此代码接收 Dictionary.txt 文件中的 349900 个单词,并将它们存储在地图中。字典的每一行都只是要查找的单词;没有要关联的定义或任何值。这就是为什么我认为只在映射中存储一对相同的键和值是可以的,并且使用 find 和第一个/第二个也可以?请确认。

看起来你想要 std::set。它就像一张地图,只有键很重要,你从不关心或使用价值。若要在给定前缀后表示为std::set<std::string>的某个单词的字典中查找,请考虑lower_bound

您应该更多地研究标准容器C++。没有那么多选择,您应该以某种方式了解所有这些(并为工作选择或组合正确的容器)