gpt4 book ai didi

c++ - 为什么 std::map 不提供 key_iterator 和 value_iterator?

转载 作者:行者123 更新时间:2023-11-27 23:11:28 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com