这个循环是做什么的?有什么意义?
What does this cycle do?What is the point?
int myDrawOrder = sprite->GetDrawOrder();
auto iter = mSprites.begin();
for(;iter != mSprites.end(); ++iter)
{
if(myDrawOrder < (*iter)->GetDrawOrder()) //what does this line mean?
{
break;
}
}
GetDrawOrder()
returns精灵在队列中的位置。
循环遍历精灵,breaks
当它发现应该在 sprite
之前绘制的恶意时。您没有共享其余的代码,但大概是对那个精灵做了一些事情(例如,它被绘制了)。
由于 iter
不是循环的局部变量,因此在 循环指向 myDrawOrder < (*iter)->GetDrawOrder()
为真的第一个元素(或 mySprites.end()
如果没有的话)。
这是一个搜索操作。
也可以这样写:
const int myDrawOrder = sprite->GetDrawOrder();
auto iter = std::find_if(
std::begin(mSprites),
std::end(mSprites),
[&](const auto& sprite) {
return sprite.GetDrawOrder() >= myDrawOrder;
}
);
int myDrawOrder = sprite->GetDrawOrder();
auto iter = mSprites.begin();
for(;iter != mSprites.end(); ++iter)
{
if(myDrawOrder < (*iter)->GetDrawOrder()) //what does this line mean?
{
break;
}
}
GetDrawOrder()
returns精灵在队列中的位置。
循环遍历精灵,breaks
当它发现应该在 sprite
之前绘制的恶意时。您没有共享其余的代码,但大概是对那个精灵做了一些事情(例如,它被绘制了)。
由于 iter
不是循环的局部变量,因此在 循环指向 myDrawOrder < (*iter)->GetDrawOrder()
为真的第一个元素(或 mySprites.end()
如果没有的话)。
这是一个搜索操作。
也可以这样写:
const int myDrawOrder = sprite->GetDrawOrder();
auto iter = std::find_if(
std::begin(mSprites),
std::end(mSprites),
[&](const auto& sprite) {
return sprite.GetDrawOrder() >= myDrawOrder;
}
);