1
任何人都可以使用clear函數來清空字符串,我們可以使用空雙引號「」來做到這一點,有什麼區別?爲什麼我們有明確的功能,當我們可以將字符串分配給cpp中的「」時
任何人都可以使用clear函數來清空字符串,我們可以使用空雙引號「」來做到這一點,有什麼區別?爲什麼我們有明確的功能,當我們可以將字符串分配給cpp中的「」時
當您分配一個空字符串時,編譯器將不得不在數據部分中存儲一個空的C字符串,並創建代碼以將指針傳遞給賦值運算符。然後,賦值運算符必須從數據部分讀取數據,以發現您傳遞了空字符串。
With clear()
編譯器只是生成一個沒有任何參數的函數調用。數據部分中沒有空字符串,沒有傳遞指針,沒有讀數等。
你甚至可能有一個編譯器,可以優化它。我不知道是否有,但標準庫不能依賴於特定的編譯器功能,這是不需要的。
更重要的區別在於表達意圖。當你想讓你的代碼的讀者理解,字符串將被清除,使用clear()
。當意圖爲您的字符串分配一個新值時,意思是一個空字符串,然後使用賦值運算符。
對於「清除」的情況,整體而言,這是較少的操作。只需將大小設置爲0.指定'「」'必須至少嘗試複製。 – StoryTeller