我想知道是否可以转换此表达式
<html>
<head>
<title>Page Title</title>
<style>
body{display:table}
.row{display:table-row}
.cell{display:table-cell}
.floatLeft{float:left}
.box1{background-color:#f00;width:100px;height:400px}
.box2{background-color:#0f0;width:400px;height:100px}
.box3{background-color:#00f;width:200px;height:300px}
.box4{background-color:#f0f;width:200px;height:300px}
</style>
</head>
<body>
<div class="row">
<div class="cell box1"></div>
<div class="cell">
<div class="row">
<div class="cell box2 "></div>
</div>
<div class="row">
<div class="cell box3 floatLeft"></div>
<div class="cell box4 floatLeft"></div>
</div>
</div>
</div>
</body>
</html>
与C ++ 11相似
我想得到这样的东西:
vector<Mesh>::iterator vIter;
for(int count = 0, vIter = meshList.begin(); vIter < meshList.end(); vIter++, count++)
{
...
}
有没有办法做到这一点?
答案 0 :(得分:5)
否,这是不可能的。您可以做的最好的事情如下:
int count = 0;
for(auto &mesh : meshList)
{
...
++count;
}
答案 1 :(得分:1)
仅出于完整性考虑,我只想指出,您可以通过(作弊和)汇总它们在for循环的init列表中定义这两个(如果您确实想这样做):< / p>
for(struct { int count; decltype(meshList)::iterator vIter; } _{0, meshList.begin()} ;
_.vIter < meshList.end(); _.vIter++, _.count++)
{
// ...
}
但是正如您可能已经注意到的那样,它很冗长,丑陋,完全不值得。 Remy's answer中的解决方案至少要好100倍。