我只是想更多地学习stl语义,并在适当的时候将旧循环转换为算法.我无法找到将此循环转换为复制调用的最佳方法.有任何想法吗?
vector< vector<float> > rvec;
const float * r[Max] = ...;
// ...
for (int ri=0; ri<N; ri++)
for (int rj=0; rj<M; rj++)
rvec[ri][rj] = r[ri][rj];
Run Code Online (Sandbox Code Playgroud)
小智 7
rvec.resize(Max);
for (int i = 0; i < Max; ++i) {
rvec[i].resize(M);
std::copy(r[i], r[i] + M, rvec[i].begin());
}
Run Code Online (Sandbox Code Playgroud)
如果rvec自身和每个向量rvec已经具有正确的大小,则不需要调整大小.
| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |