Инкапсулировать std::map, чтобы разрешить итерации, но нет прямого доступа к ключу?
Есть ли способ заключить в капсулу std::map
в пользовательском классе, разрешающем итерацию, но не позволяющем прямой доступ к ключу?
Я хотел бы манипулировать ключом при вставке и заставить весь доступ к элементам через определенный пользователем метод (так как ключ необходимо будет изменить).
Я думаю, что проблема в том, чтобы разрешить итерацию по карте, не давая пользователю получить доступ к ключу через итератор.
1 ответ
Не выставляйте итераторы. Выставить for_each
функция, которая передает каждый элемент в предоставляемую пользователем (лямбда) функцию.
В качестве альтернативы используйте итератор преобразования.