取消引用无对映射的配对对象的第一部分

时间:2015-05-18 17:03:46

标签: c++ unordered-map std-pair

我有一个符合C ++ 03的编译器。使用以下代码将元素插入无序映射时,我正在使用对象:

unordered_map<char, string> mymap;
pair<unordered_map<char, string>::iterator,bool> ret;
ret = mymap.insert(make_pair('A',"A string of some sort."));
    if (ret.second==false)
        cout << "Could not insert an element into an unordered map.\n";
    else
        cout << // how to print the ret.first value here

我无法访问ret.first指向的值。如何打印,取消引用ret.first的迭代器?

1 个答案:

答案 0 :(得分:3)

你可以做这样的事情

cout << (ret.first)->first;

输出

A

Working demo

当您说ret.first时,您正在从返回的std::pair<std::unordered_map<char, std::string>::iterator, bool>访问迭代器。

获得迭代器后,下一个->first将获得char作为关键字。同样,->second将获得该密钥的std::string值。