为无序映射取消引用 pair 对象的第一部分
Dereference the first part of the pair object for an unordered map
我有一个 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
?
的解引用迭代器
你可以这样做
cout << (ret.first)->first;
输出
A
当您说 ret.first
时,您正在从返回的 std::pair<std::unordered_map<char, std::string>::iterator, bool>
.
访问迭代器
一旦有了迭代器,下一个 ->first
就会到达作为键的 char
。同样,->second
会得到该键的 std::string
值。
我有一个 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
?
你可以这样做
cout << (ret.first)->first;
输出
A
当您说 ret.first
时,您正在从返回的 std::pair<std::unordered_map<char, std::string>::iterator, bool>
.
一旦有了迭代器,下一个 ->first
就会到达作为键的 char
。同样,->second
会得到该键的 std::string
值。