2016-02-14 74 views

回答

7

當您分配一個空字符串時,編譯器將不得不在數據部分中存儲一個空的C字符串,並創建代碼以將指針傳遞給賦值運算符。然後,賦值運算符必須從數據部分讀取數據,以發現您傳遞了空字符串。

With clear()編譯器只是生成一個沒有任何參數的函數調用。數據部分中沒有空字符串,沒有傳遞指針,沒有讀數等。

你甚至可能有一個編譯器,可以優化它。我不知道是否有,但標準庫不能依賴於特定的編譯器功能,這是不需要的。

更重要的區別在於表達意圖。當你想讓你的代碼的讀者理解,字符串將被清除,使用clear()。當意圖爲您的字符串分配一個新值時,意思是一個空字符串,然後使用賦值運算符。

相關問題