Variant a:Các so sánh giữa trình vòng lặp và const_iterator có hiệu quả không?
const auto end = whatever.end();
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
Variant b:
const auto end = whatever.cend(); // note the call to cend insteand of end here
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
Có lý do nào để tin rằng biến thể b sẽ ít hiệu quả hơn so với phiên bản một, vì điều kiện vòng lặp so sánh hai loại khác nhau của vòng lặp? Điều này có gây ra chuyển đổi tiềm ẩn trên it
không?
(end
được sử dụng nhiều lần bên trong vòng lặp for, do đó mong muốn của tôi treo nó ra.)
Đối với vùng chứa nào? –
@David Trong trường hợp cụ thể của tôi, đó là một 'std :: string', nhưng tôi tò mò nói chung. – fredoverflow