2

我有以下内容:

map<int, StructType> map;
const map<int, StructType>& GetMap() { return map; }

我想按照以下方式做一些事情:

const map<int, const StructType>& GetConstMap() { return map; }

有什么办法可以将这种特性添加const到地图的值类型中?

4

1 回答 1

4

的接口std::map被设计为const map<K,T>有效地具有 const 值类型,从不公开对其元素的非常量访问。

因此,您不能通过const map引用添加、删除或修改元素。

所以:

struct X
{
    map<int, StructType> m;

    const map<int, StructType>& GetConstMap() const { return m; }
}

是你想要的。

于 2013-04-22T20:44:50.600 回答