std::stringについて質問です

たまに string str; に対し str = "";
という方法で文字列をクリアしてるのを見かけるのですが、
これは string::clear() を使うより効率がいいとかなんでしょうか?

また、string::reserve() で設定したサイズは
string::clear()で解除されたりするんでしょうか?

以上、よろしくお願いします