可以使用基于范围的C++11来执行/检查额外的操作/条件吗? 您所在的位置:网站首页 struct里面有vector 可以使用基于范围的C++11来执行/检查额外的操作/条件吗?

可以使用基于范围的C++11来执行/检查额外的操作/条件吗?

#可以使用基于范围的C++11来执行/检查额外的操作/条件吗?| 来源: 网络整理| 查看: 265

v = { 1, 2, 3, 4, 5 }; for (auto&& e : enumerate(v)) { std::cout

Range-v3遗憾的是没有枚举,这让我非常难过,但是你可以自己编写view::ints和使用view::zip*.Range-v3具有很大的优势,它是标准库中建议范围的基础.范围组合允许构建干净的抽象.

关于你的最后一个例子,我认为如果你需要降低复杂性,你应该完全避免循环.而是使用适合您的任务的算法std::find_if,std::any_of而无需表达控制流.

3> M.M..:

对于常规容器,您无法从基于范围的循环中获取索引和迭代器.相反,你要么必须保留一个单独的变量,要么返回到迭代器循环.

自C++ 11以来,迭代器外观可以更简单地编写:

for( auto iter = begin(v); iter != end(v); ++iter )

对于矢量的特定情况,您可以执行以下操作:

for ( auto& val : v ) { cout

这是有效的,因为矢量使用连续存储.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有