【问题标题】:Create Map inside local function在本地函数中创建地图
【发布时间】:2014-06-26 12:12:13
【问题描述】:

我有一张地图作为班级成员。 map <int,map<int,vector<byte>>> m_.

然后,在代码的其他地方,我需要向该地图添加一个元素。 我正在做的(在函数内部)是:

map<int,vector<byte>> tmp; tmp.insert(std::make_pair(1,a_vector)); m_.insert(1,tmp)

但不会起作用,因为这个 tmp 是函数范围内的局部变量。 如何创建位于本地范围之外的地图?

【问题讨论】:

  • 你试过了吗?它可以工作,但需要复制/移动地图。

标签: c++ map std


【解决方案1】:

你的假设是错误的。 C++ 具有值语义。当然,tmp 具有本地范围。但是m_ 没有。最后一个插入将tmp 存储在m_ 中。就像a_vector 存储在tmp 中一样。

由于 C++ 具有值语义,当我们实际表示 X 的值时,我们通常只写“将 X 存储在 Y 中”。

【讨论】:

    【解决方案2】:

    您无需担心,map 会将对象复制或移动到自身中,它不包含对您添加的对象的引用。

    【讨论】:

      猜你喜欢
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      相关资源
      最近更新 更多