标签: c++ dictionary stl encapsulation
是否有一种方法可以将std::map封装在用户定义的类中,从而允许迭代,但不允许直接访问密钥?
std::map
我想在插入时操纵键,并且想通过用户定义的方法强制所有对元素的访问(因为键需要修改)。
我认为问题在于允许迭代地图,同时阻止用户通过迭代器访问密钥。
答案 0 :(得分:0)
不公开迭代器。公开一个for_each函数,该函数将每个元素传递给用户提供的(lambda)函数。
for_each
或者,使用transform iterator。