我正在寻找一种有效的方法来追加多个字符串。
它应该工作的方式是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