РЕДАКТИРОВАТЬ: Пожалуйста, обратите внимание, я НЕ спрашиваю, почему multimap не может содержать повторяющиеся ключи .
Что обоснование использования мульти-карты, позволяющей дублировать пары ключ-значение? (не ключей )
#include <map>
#include <string>
#include <iostream>
int
main(int argc, char** argv)
{
std::multimap<std::string, std::string> m;
m.insert(std::make_pair("A", "B"));
m.insert(std::make_pair("A", "B"));
m.insert(std::make_pair("A", "C"));
std::cout << m.size() << std::endl;
return 0;
}
Это напечатало 3, что меня несколько удивило, я ожидал, что multimap будет вести себя как набор пар , поэтому я ожидал 2.
Интуитивно понятно, это несовместимо с поведением C ++ std :: map
, где insert
не всегда изменяет карту (в отличие от operator []
).
Есть ли объяснение этому, или это просто произвольно?