Ответ 1
Да, это работает, но было бы более идиоматично сказать !vector.empty() && vector[0] == 3
: это будет работать для всех контейнеров с максимальной эффективностью, поэтому оно никогда не бывает хуже, иногда лучше и всегда более читаемо.
Является ли следующий код приемлемым?
if(vector.size() > 0 && vector[0] == 3) {
}
Или есть вероятность, что он сработает, когда вектор пуст? Я не заметил этого, но я беспокоюсь, что это все еще возможно.
Да, это работает, но было бы более идиоматично сказать !vector.empty() && vector[0] == 3
: это будет работать для всех контейнеров с максимальной эффективностью, поэтому оно никогда не бывает хуже, иногда лучше и всегда более читаемо.
Да, вы можете положиться на встроенный оператор &&
на короткое замыкание. Эта часть его спецификации.