使用 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位址 但是此...