Предполагая, что вы хотите обновить last std::pair
сразу после вставки в std::vector<std::pair<int, int>>
.
In c ++ 17 вы можете использовать вторую перегрузку std::vector::emplace_back
, которая возвращает ссылку на вставленный элемент:
#include <vector>
std::vector<std::pair<int, int>> vec;
auto &pair = vec.emplace_back(1, 3); // construct in-place and get the reference to the inserted element
pair.second = 5; // change the value directly like this
Обновление:
В c ++ 11 , то же самое может быть достигнуто с помощью std::vector::insert
элемент, который возвращает итератор , указывающий на вставленный элемент.
#include <vector>
std::vector<std::pair<int, int>> vec;
// insert the element to vec and get the iterator pointing to the element
const auto iter = vec.insert(vec.cend(), { 1, 3 });
iter->second = 5; // change the value