如何从 std::map::emplace() 获取对插入对象的引用?
How to get reference to inserted object from std::map::emplace()?
如何从std::map::emplace()
获取对插入对象的引用?
emplace 的官方文档。
我添加了 auto inserted = m.emplace("d", "ddd");
能否请您演示如何获取刚刚插入的 "ddd"
的引用?
我收到一些荒谬的类型 struct std::_Rb_tree_iterator
并且找不到任何文档或示例如何使用它。
#include <iostream>
#include <utility>
#include <string>
#include <map>
int main()
{
std::map<std::string, std::string> m;
// uses pair's template constructor
auto inserted = m.emplace("d", "ddd");
for (const auto &p : m) {
std::cout << p.first << " => " << p.second << '\n';
}
}
map.emplace
return 一对包含对象的迭代器和布尔值 (http://www.cplusplus.com/reference/map/map/emplace/)
map 的迭代器是一种指向一对键和值的指针。所以,你可以这样做:
auto inserted = m.emplace("d", "ddd");
if (inserted.second == true)
{
auto &ref_to_ddd = inserted.first->second;
}
如何从std::map::emplace()
获取对插入对象的引用?
emplace 的官方文档。
我添加了 auto inserted = m.emplace("d", "ddd");
能否请您演示如何获取刚刚插入的 "ddd"
的引用?
我收到一些荒谬的类型 struct std::_Rb_tree_iterator
并且找不到任何文档或示例如何使用它。
#include <iostream>
#include <utility>
#include <string>
#include <map>
int main()
{
std::map<std::string, std::string> m;
// uses pair's template constructor
auto inserted = m.emplace("d", "ddd");
for (const auto &p : m) {
std::cout << p.first << " => " << p.second << '\n';
}
}
map.emplace
return 一对包含对象的迭代器和布尔值 (http://www.cplusplus.com/reference/map/map/emplace/)
map 的迭代器是一种指向一对键和值的指针。所以,你可以这样做:
auto inserted = m.emplace("d", "ddd");
if (inserted.second == true)
{
auto &ref_to_ddd = inserted.first->second;
}