在map <string,vector <string =“” >>中找到唯一值?

时间:2019-03-12 00:30:21

标签: c++

我正在尝试创建基本的搜索功能。现在,我可以设置函数来接受三个参数:map<string, vector<string>>const string& keybool unique

我的目标是让query检查key是否在地图上,如果与bool unique = false一起在地图中,则只输出与键,重复项和所有键相关的所有值。

但是,如果bool unique = true

,我还需要仅输出与键关联的唯一值。

我的后半部分完全按需要工作,但是我在输出唯一值方面很挣扎。我该怎么办?是否可以在不创建新矢量或更改地图的情况下这样做?

很抱歉,如果有任何不清楚的地方,我很乐意澄清。谢谢。

void query(const map<string, vector<string>>& map, const string& key, bool unique) {

const auto pair = map.equal_range(key);
 if(map.count(key)){
    for( auto iter = pair.first ; iter != pair.second ; ++iter ){

        for( const auto& str : iter->second ) {

            if (!unique){
                cout << "  " << key << " ";
                cout << str << "\n";

            } else if (unique) {
                // output key + unique values
            } 
        }
    }
} else {
    cout << "<Not found>\n";

}

0 个答案:

没有答案