При отладке чего-то я увидел реализацию STL vector:: empty():
bool empty() const
{return (size() == 0); }
Я считаю, что всякий раз, когда мы исследуем пустоту вектора, всегда рекомендуется использовать пустой над size(). Но, видя эту реализацию, я задаюсь вопросом, в чем преимущество этого? Вместо этого есть накладные расходы на вызов функции при вызове пустого, поскольку он внутренне вызывает size() == 0.
Я думал, что empty() может оказаться полезным в случае списка, поскольку size() не гарантирует постоянное время в списке. Чтобы проверить мое предположение, я проверил реализацию списка и, что удивительно, нашел ту же реализацию в списке,
return (size() == 0);
Я немного запутался. Если пустым внутренне используется size(), то почему мы предпочитаем пустую над size()?