gpt4 book ai didi

c++ - BOOST_FOREACH 与 for 循环

转载 作者:IT老高 更新时间:2023-10-28 23:10:08 30 4
gpt4 key购买 nike

我想听听您对 BOOST_FOREACH 使用的建议。

我已经阅读了它,因为它是一个非常沉重的标题,但实际上并不推荐它。

此外,它强制使用“break”和“continue”语句,因为您不能真正拥有由 bool 值驱动的退出条件,而且我一直被告知应该避免使用“break”和“continue”尽可能。

当然,优点是您不直接与迭代器打交道,这简化了迭代容器的任务。

你怎么看?

您认为如果使用它应该被系统地采用以保证项目中的同质性,还是仅在某些情况下才推荐使用它?

最佳答案

我会说基于 C++ 范围的循环取代了它。这相当于 this BOOST_FOREACH example :

std::string hello( "Hello, world!" );
for (auto c : hello)
{
std::cout << c;
}

我从来没有发现我需要在++03 中使用它。

注意在复制元素成本高昂的容器上使用基于范围的循环时,或在通用上下文中,最好对这些元素使用 const&:

SomeContainerType<SomeType> v = ....;
for (const auto& elem : v)
{
std::cout << elem << " ";
}

同样,如果你需要修改容器的元素,那么使用一个非常量 & (auto& elem : v)。

关于c++ - BOOST_FOREACH 与 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000259/

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