c++ - 封装 std::map 以允许迭代,但不能直接访问密钥?
问题描述
有没有办法封装std::map
在用户定义的类中,允许迭代,但不允许直接访问密钥?
我想在插入时操作密钥,并且我想通过用户定义的方法强制所有对元素的访问(因为需要修改密钥)。
我认为问题在于允许迭代地图,同时阻止用户通过迭代器访问密钥。
解决方案
不要暴露迭代器。公开一个for_each
将每个元素传递给用户提供的 (lambda) 函数的函数。
或者,使用转换迭代器。
推荐阅读
- python - 将几个numpy数组存储为jpg图像python时丢失文件
- amazon-web-services - 如何将文档上传到签名的 AWS S3?什么是桶和对象?
- android - 自定义 url 方案在 Android 中不起作用反应原生
- django - django 从视图中设置模板 url
- sql - 使用子查询和标准值插入数据
- django - 网站间歇性加载失败 - DNS 有问题?
- python-3.x - 事件后触发周期性 celery 任务
- javascript - 单击按钮odoo时如何调用该函数
- angular - Angular5.x 用于长时间运行的服务器进程的进度报告
- ruby - 带有粉碎的Docker ruby容器 - 加载错误