我习惯写这样的循环:
for (std::size_t index = 0; index < foo.size(); index++)
{
// Do stuff with foo[index].
}
Run Code Online (Sandbox Code Playgroud)
但是当我在其他代码中看到迭代器循环时,它们看起来像这样:
for (Foo::Iterator iterator = foo.begin(); iterator != foo.end(); iterator++)
{
// Do stuff with *Iterator.
}
Run Code Online (Sandbox Code Playgroud)
我发现这iterator != foo.end()是有争议的.如果iterator增加多于一个也可能是危险的.
使用起来似乎更"正确" iterator < foo.end(),但我从未在实际代码中看到过这种情况.为什么不?