我想知道傳遞自定義字符串的最有效方法是什麼。 例如,我有這樣的代碼段:高效的自定義字符串創建者
outputFile << addSpace(data.len());
其中
string addSpace(int n) {
string result("");
for (int i = 0; i < n; i++) {
result += ' ';
}
return result;
}
清楚的是,該功能不是那麼有效,因爲字符串由-VAL返回,然後,即使在使用RValue可能適合的地方。 如果N是固定的,比如N = 5,我可以只使用
outputFile << " "
但顯然情況並非如此。
那麼最好的解決方案是什麼?(不管這個N空白的具體例子,可以說任何參數相關的字符串創建)。 我想到了lambda函數,但我並不確定。
你大概的意思是「高效」 ... –
如果'data.len'有一個合理的上限,你是經常調用該函數,你可以緩存每個生產串一個函數靜態數組(或關聯數組),然後只用索引長度來檢查,如果存在,則返回緩存的值。或者甚至更鈍,預先產生所有這些字符串,如果max len很小的話。哦,你應該把返回值作爲一個const引用,如果你只是打印它。 –
也許你正在尋找的東西像'的std :: setw',但它不太可能有任何效率差別反正。 –