Checking whether a vector is empty

v.size() == 0 says “I’m comparing the size”, but does so to check whether the container empty. There’s a small algorithm to digest (very small, as it only consists of a comparison) before you know what it does.
OTOH, v.empty() does exactly what it says: it checks whether v is empty.
Due to this, I clearly prefer #2, as it does what it says. That’s why empty() was invented, after all.

But there’s also an algorithmic reason to prefer empty(): If someone later changes std::vector into a std::list, v.size() might have O(n). (In C++ 03 it’s guaranteed to be O(1) for std::vector, but not for std::list. According to James’ comment to Prasoon’s answer it will be O(1) for all containers in C++1x.)

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)