可以使用基于范围的C++11来执行/检查额外的操作/条件吗? | 您所在的位置:网站首页 › struct里面有vector › 可以使用基于范围的C++11来执行/检查额外的操作/条件吗? |
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 实验室设备网 版权所有 |