nic*_*ole 0 c++ indexing vector size-t
我有一些用于绘制多边形边的代码,例如,应该在具有顶点0,1和2的三角形中绘制多边形边,边(0,1),(1,2)和(2,0).我以为我可以这样做:
for(size_t j = 0, k = 1; j <= vertices.size()-1; j++, k++){
if(j == vertices.size()-1){k = 0;} //For j to k final edge
...
//draw edges, etc.
...
}
Run Code Online (Sandbox Code Playgroud)
......但这会使k值爆炸成无限循环.我已经看过这个并且怀疑问题可能出在我的索引中,但是如果一切都依赖于j,我会认为也许vertices.size()搞砸了.我在这段代码中遗漏了什么,或者我应该更仔细地查看实际的顶点向量?
你不需要数k:
size_t const count = vertrices.size()
for(size_t j = 0; j < count; j++) {
size_t k = (j + 1) % count;
// draw
}
Run Code Online (Sandbox Code Playgroud)
这种方式k是j+1除了j是最大值,在这种情况下它是0.