如何分配一个std :: pair,它有一个组件类型为const?

Mat*_*agé 5 c++ std-pair

我正在尝试编写与std :: map兼容的关联容器.为此,我必须创建一个insert方法,该方法接受std :: pair形式的新项与const类型的第一个组件.例如:std::pair<const int, int> p.

我遇到的问题是这样的对象不能分配给另一个.所以在我的MapCompatibleContainer的内部代码中,我无法将新对复制到私有变量(std :: vector).

我该如何解决这个问题?

谢谢

Bo *_*son 3

正如你所说,你不能分配给 const 对象。

标准容器通过分配原始内存并就地构造对象来解决这个问题。复制构造仍然有效。

此外,关联容器将每个元素存储在单独的内存块中,以便以后不必复制它们。