Компиляторы C и С++ обычно оптимизируют сравнение с функциями?
Например, эта страница предполагает, что функция size
в std:: lists в С++ может иметь линейную сложность O (N) в некоторых стандартных реализациях библиотек (что имеет смысл для связанного списка).
Но в этом случае, если myList
является огромным списком, что бы это делало?
if (myList.size() < 5) return 1;
else return 2;
Будет ли функция size() находить и подсчитывать все элементы списка N или будет ли она оптимизирована для короткого замыкания после поиска 5 членов?