封装std :: map允许迭代,但是没有直接键访问?

时间:2018-08-15 15:53:10

标签: c++ dictionary stl encapsulation

是否有一种方法可以将std::map封装在用户定义的类中,从而允许迭代,但不允许直接访问密钥?

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

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

1 个答案:

答案 0 :(得分:0)

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

或者,使用transform iterator