Инкапсулировать std::map, чтобы разрешить итерации, но нет прямого доступа к ключу?

Есть ли способ заключить в капсулу std::map в пользовательском классе, разрешающем итерацию, но не позволяющем прямой доступ к ключу?

Я хотел бы манипулировать ключом при вставке и заставить весь доступ к элементам через определенный пользователем метод (так как ключ необходимо будет изменить).

Я думаю, что проблема в том, чтобы разрешить итерацию по карте, не давая пользователю получить доступ к ключу через итератор.

1 ответ

Не выставляйте итераторы. Выставить for_each функция, которая передает каждый элемент в предоставляемую пользователем (лямбда) функцию.

В качестве альтернативы используйте итератор преобразования.

Другие вопросы по тегам