何かをデバッグしているときに、STL の vector::empty() 実装を見ました。
bool empty() const
{return (size() == 0); }
vector の空を調べるときはいつでも、size() よりも empty を使用することをお勧めします。しかし、その実装を見て、そうする利点は何だろうと思います。代わりに、内部的に size()==0 を呼び出すため、empty の呼び出しには関数呼び出しのオーバーヘッドがあります。
size() はリスト内の一定の時間を保証しないため、リストの場合は empty() が役立つかもしれないと思いました。私の仮定を確認するために、リストの実装を確認したところ、驚くべきことに、リストにも同じ実装が見つかりました。
return (size() == 0);
私は今少し混乱しています。empty が内部で size() を使用している場合、なぜ size() よりも empty を優先する必要があるのでしょうか?