【发布时间】:2012-03-10 02:59:33
【问题描述】:
我有一个std::map,我想使用子字符串搜索一个键。例如,我有以下代码:
#include <iostream>
#include <map>
#include <string>
using namespace std;
typedef std::map<std::string, std::string> TStrStrMap;
typedef std::pair<std::string, std::string> TStrStrPair;
int main(int argc, char *argv[])
{
TStrStrMap tMap;
tMap.insert(TStrStrPair("John", "AA"));
tMap.insert(TStrStrPair("Mary", "BBB"));
tMap.insert(TStrStrPair("Mother", "A"));
tMap.insert(TStrStrPair("Marlon", "C"));
return 0;
}
现在,如果“Marla”存储在地图中,我想搜索包含子字符串“Marl”而不是“Marlon”的位置。我想找到以“Marl”开头的东西。我最多需要找到一个位置。这可能吗?如果是这样,怎么做?
我不想使用任何 Boost 库!
【问题讨论】:
-
等一下,“Marl 而不是 Marlon” 表示您在搜索 Marl 时不想找到 Marlon?
-
@wilhelmtell 想找到以 Marl 开头的东西。也许不是 Marlon,例如 Marla 存储在地图中。我最多需要找到一个位置。
标签: c++ dictionary search containers stdmap