编辑: 请注意,我不是在问为什么 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 表现得像一组pair,所以我期待 2。
直观地说,它与 C++std::map
行为不一致,其中insert
并不总是更改映射(与 相对operator[]
)。
它背后有什么理由,还是只是任意的?