Есть ли функция может изменить значение карты и вернуть итератор?C++

Программы на C++. Форум разработчиков
Anonymous
Есть ли функция может изменить значение карты и вернуть итератор?

Сообщение Anonymous »

Я хочу вставить пару в карту (создать ее, если не существовало, изменить его иначе) и получить указатель значения, чтобы позволить другим использовать.
Вот демо -код:

Код: Выделить всё

#include 
using namespace std;
std::map a = {{1, 1}};
int* set_and_return_value() {
// option 1: a[1] = 2; return &(a[1]); i think it's ugly
const auto [it, ok] = a.emplace(1, 2);
return &(it->second);
// emplace is good, but it won't modify the existed key's value
}
Итак, есть ли функция, может вернуть итератор после реальной вставки пары?

Подробнее здесь: https://stackoverflow.com/questions/782 ... e-iterator

Вернуться в «C++»