我正在尝试编写与std :: map兼容的关联容器.为此,我必须创建一个insert方法,该方法接受std :: pair形式的新项与const类型的第一个组件.例如:std::pair<const int, int> p
.
我遇到的问题是这样的对象不能分配给另一个.所以在我的MapCompatibleContainer的内部代码中,我无法将新对复制到私有变量(std :: vector).
我该如何解决这个问题?
谢谢
正如你所说,你不能分配给 const 对象。
标准容器通过分配原始内存并就地构造对象来解决这个问题。复制构造仍然有效。
此外,关联容器将每个元素存储在单独的内存块中,以便以后不必复制它们。