作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 C++03 环境中工作,对 map 的每个键应用一个函数是很多代码:
const std::map<X,Y>::const_iterator end = m_map.end();
for (std::map<X,Y>::const_iterator element = m_map.begin(); element != end; ++element)
{
func( element->first );
}
如果 key_iterator
存在,相同的代码可以利用 std::for_each
:
std::for_each( m_map.key_begin(), m_map.key_end(), &func );
那为什么不提供呢?有没有办法使第一种模式适应第二种模式?
最佳答案
是的,这是一个愚蠢的缺点。但它很容易纠正:您可以编写自己的通用 key_iterator 类,它可以从映射(对)迭代器构造。我已经做到了,它只是几行代码,然后制作 value_iterator 也是微不足道的。
关于c++ - 为什么 std::map 不提供 key_iterator 和 value_iterator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20030074/
我在 C++03 环境中工作,对 map 的每个键应用一个函数是很多代码: const std::map::const_iterator end = m_map.end(); for (std::ma
我是一名优秀的程序员,十分优秀!