for(auto i: {{1,2,3}, {4,5,6}, {7,8,9}}){
/* loop body */
}
我知道我还有其他方法可以完成工作。但是我只是想知道为什么我们不能在此循环中使用这种类型的列表。
它给了我这个错误:
cannot use type 'void' as a range
{..}
没有类型,因此内部类型所需的推导有问题,您可以通过显式提供类型来提供帮助:(在添加之前,我在这里使用了C ++ 17的CTAD <int>
)
for (auto i: {std::initializer_list{1,2,3}, {4,5,6}, {7,8,9}}){
/* loop body */
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句