我可以将具有非const值类型的映射转换为具有const值类型的映射吗?

时间:2013-04-22 19:56:09

标签: c++ stl

我有以下内容:

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

我想在这些方面做点什么:

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

有什么方法可以将此const - 添加到地图的值类型中吗?

1 个答案:

答案 0 :(得分:4)

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

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

所以:

struct X
{
    map<int, StructType> m;

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

是你想要的。