C++使用没有值,只有键的映射的字典
Dictionary in C++ using a Map with no values, only keys
我正在用 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++。没有那么多选择,您应该以某种方式了解所有这些(并为工作选择或组合正确的容器)
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 蟒蛇字典到C++映射
- 以std::字符串作为关键字,按字典顺序对一个无序映射进行排序
- 将C++映射转换为python字典
- C++使用没有值,只有键的映射的字典
- Python支持排序字典 - 类似于C++映射
- 在c++中从字典文件创建映射的映射