【发布时间】:2020-10-29 19:16:28
【问题描述】:
我正在使用基于范围的 for 循环遍历多维 vector<vector<float> >。所以,是这样的:
for(vector<float> &row : myVector){
// Do some stuff
}
我希望能够根据循环内的条件向前移动一些固定数量的n 行。当然,我可以这样做:
for(int i = 0, j = 0; i < rows && j < columns; ++i, ++j){
// Do some stuff
}
但是,使用基于范围的循环对于包含在循环中的算法非常有利,如果可能的话,我更愿意保留它。这可能吗?如果可以,怎么做?
【问题讨论】:
-
为什么这么有优势?它没有做任何你不能用迭代器做的事情
-
基于范围的 for 循环打印整个范围。您要么需要不同类型的循环,要么需要范围适配器。
-
另外,将您的数据存储在单维向量中,这具有更好的缓存性能,并且会显示出真正的加速。
标签: c++ arrays loops for-loop vector