匹配字符串到他们的缩写

时间:2017-01-23 02:35:53

标签: c++ string match

我正在解决一个问题,我有两个带有机场名称的输入文件。每个机场都有标准化的缩写,如旧金山(SFO)和洛杉矶(LAX)

第一个输入文件使用这些缩写,第二个文件使用城市名称。

我正在寻找一种优雅的解决方案,而不是使用std::string.compare()来处理30种不同的if-else条件。

1 个答案:

答案 0 :(得分:5)

Map每个缩写为其全名

// Init map
std::map<std::string, std::string> airports;
airports["SFO"] = "San Francisco";
airports["LAX"] = "Los Angeles";

bool cmpAirports(std::string abbr, std::string fullname)
{
    auto fname = airports.find(abbr);
    if (fname == airports.end())
        return 0; // No airport with such abbreviation found
    return fname->second == fullname;
}