C 拼接長字串

2021-08-19 09:50:28 字數 1844 閱讀 8065

使用 string 類提供過載 += 方法拼接字串。示例:

// length 引數代表拼接的字串長度

void composelongstringwithoperator(const

unsigned

int length,std::string& long_string)

}

unsigned

int length,std::string& long_string)

}在拼接字串之前為string 物件提前分配空間,然後使用 += 方法進行拼接,示例:

void composelongstringwithreserveandoperator(const

unsigned

int length,std::string& long_string)

}

unsigned

int length,std::string& long_string)

}進行10000次長字串拼接,統計每種方式下耗時,示例**如下:

#include 

#include

#include

#include

char* randstr(char* str,const

int len)

str[++i] = '\0';

return str;

}int main(int argc, char* argv)

break;

case

2: std::cout

<< "composelongstringwithreserveandoperator";

for(int i = 0; i < 10000; i++)

break;

case

3: std::cout

for(int i = 0; i < 10000; i++)

break;

case

4: std::cout

<< "composelongstringwithoperator";

for(int i = 0; i < 10000; i++)

break;

default:

return

0; }

auto end = std::chrono::high_resolution_clock::now();

std::chrono::duration diff = end - start;

std::cout

<< " cost "

<< 1000 * diff.count() << " ms\n";

return

0;}

編譯

g++

-std

=c++

11-o3 compose_long_string.cpp -o compose_long_string

長字串長度為1000000,每種方法進行10000次拼接,四種方法的耗時如下:

method

cost (ms)

117304

reserve && operator

122998

125682

operator

129071

針對較短字串,使用reserve提前分配空間對效能提公升意義不大,當字串的長度很長是,使用reserve方法提前分配空間可以帶來比較大的效能提公升。

c 拼接字串陣列 C 字串拼接

測試環境 unity2018.4 net4.x。需要注意.net4.x和3.5差異還是挺大的 寫的內容大部分網上已有,算是總結他人的成果,是 1 先說幾條結論 1 1 字串在c 中是高頻出現的 1 2 這類高頻出現方法 字段通常不是每幀的效能瓶頸。但有可能是瞬間卡頓的 1 3 字串記憶體開銷計算 2...

c 拼接字串陣列 陣列 字串拼接

題目描述輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。public class solution 交換的值不是拼接後的兩個相鄰字串 if before after for int i 0 i...

C 字串拼接顯示

常見的c字串拼接可能就是將條字串拼接在一塊新的記憶體區域內,並得到新記憶體區域的起始位址,這類操作可以自己寫,也可以使用c庫函式 c c extern char strcat const char dest,const char src 將src字串新增到dest字串末尾,並返回dest位址 但是此...