我正在尋找一種有效的方法來追加多個字符串。
它應該工作的方式是C++ std :: string :: append或JAVA StringBuffer.append。C字符串追加
我寫了一個函數,它實際上重新分配以前的源指針並執行strcat。
我相信這不是一個有效的方法,因爲編譯器可以實現這個自由和malloc。
我能想到的其他方式(如std :: vector)是分配內存(例如1KB)並執行strcpy。在這種情況下,每個追加調用將檢查總需求分配是否大於(1200字節)批量分配的數量,重新分配至2KB。但在這種情況下,會浪費一些內存。
我正在尋找上述之間的平衡,但首選是性能。
其他方法是可能的。請建議。
['strcat'](http://www.cplusplus.com/reference/clibrary/cstring/strcat的/)? – Santa 2011-05-18 16:58:08
strcat沒有任何幫助,它不會爲您分配任何空間,也不會爲您檢查邊界,而且效率非常低,除非您記得前一個字符串的結尾。 – nos 2011-05-18 17:01:42
級聯通常只是C中錯誤的成語*。除非沒有其他選項,否則不要使用它。 (這在其他語言中也是效率低下的,但其他語言完全缺乏有效的替代方法,所以它是可以接受的。)順便說一下,如果您想使用C++或Java語言,請使用其中一種語言,而不要使用C語言。試圖在計算機語言就像試圖在人類語言之間翻譯它們一樣荒謬。 – 2011-05-18 17:06:52