#include <iostream>
#include <map>

void printMultimap(const std::multimap<int, int>& multiMap)
{
    std::cout << "MultiMap:\n";
	for (const auto& pair : multiMap)
	{
		std::cout << pair.first << ":" << pair.second << "\n";
	}
}

int main()
{
	std::multimap<int, int> multiMap;
	multiMap.insert(std::make_pair(1, 1));
	multiMap.insert(std::make_pair(1, 2));
	multiMap.insert(std::make_pair(2, 3));
	multiMap.insert(std::make_pair(2, 4));
	multiMap.insert(std::make_pair(2, 5));
	multiMap.insert(std::make_pair(3, 1));

	printMultimap(multiMap);

	auto range = multiMap.equal_range(2);
	for (auto iterator = range.first; iterator != range.second;)
	{	
		if (iterator->second != 4)
		{
			multiMap.insert(std::make_pair(-1, iterator->second));
		}
		iterator = multiMap.erase(iterator);
	}

	printMultimap(multiMap);

	return 0;
}