在 C++ 開發中,字串輸出是常見操作。許多開發者會好奇:cout << string1 + string2 與 cout << string1 << string2 究竟哪種寫法效率更高?
從理論層面來看,後者 cout << string1 << string2 確實效率較高。原因在於前者需要先建立一個臨時字串物件來儲存 string1 + string2 的連接結果,再將其輸出;而後者則是直接透過流運算子 operator<< 依序輸出兩個字串,避免了額外的記憶體配置與複製開銷。
不過,在現代編譯器優化(如 RVO、移動語意)以及典型應用場景下,這點效能差異幾乎可以忽略不計。除非在極高頻率、大數據量的迴圈中輸出,否則兩種寫法的執行時間差異通常在奈秒級別,不會成為效能瓶頸。
cout << string1 << string2 更符合串流輸出的直覺語意,程式碼也更清晰。總結:雖然 cout << string1 << string2 理論上較優,但實務上兩者差異極小,建議以程式碼可讀性與團隊規範為依歸。