我有一个符合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
的迭代器?
答案 0 :(得分:3)
你可以做这样的事情
cout << (ret.first)->first;
输出
A
当您说ret.first
时,您正在从返回的std::pair<std::unordered_map<char, std::string>::iterator, bool>
访问迭代器。
获得迭代器后,下一个->first
将获得char
作为关键字。同样,->second
将获得该密钥的std::string
值。