代码之家  ›  专栏  ›  技术社区  ›  user997112

封装STD::MAP允许迭代,但不直接直接访问?[副本]

  •  0
  • user997112  · 技术社区  · 6 年前

    此问题与以下内容完全相同:

    有包装的方法吗 std::map 在用户定义的类中,允许迭代,但不允许直接访问键?

    我希望在插入时操纵键,并且希望通过用户定义的方法强制所有对元素的访问(因为需要修改键)。

    我认为问题在于允许遍历映射,同时阻止用户通过迭代器访问密钥。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Maxim Egorushkin    6 年前

    不要公开迭代器。暴露 for_each 将每个元素传递给用户提供的(lambda)函数的函数。

    或者,使用 transform iterator .