变体一:
const auto end = whatever.end();
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
变体 b:
const auto end = whatever.cend(); // note the call to cend insteand of end here
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
是否有任何理由相信变体 b 的效率会低于变体 a,因为循环条件比较了两种不同类型的迭代器?这会导致隐式转换it
吗?
(end
在 for 循环中多次使用,因此我希望将其吊出。)