I read in a tutorials said:

```
bool is_nonempty_notgood = (v.size() > 0); // Try to avoid this
bool is_nonempty_ok = !v.empty();

```

The explanation I failed to understand:

first, `size()` is unsigned, which may sometimes cause problems;

Second, it’s not a good practice to compare `v.size()` to zero if you want to know whether the container is empty.This is because not all the containers can report their size in `O(1)`, and you definitely should not require counting all elements in a double-linked list just to ensure that it contains at least one.

Could someone provide some examples and more details?