兩個重載函數中的std :: string了我的注意:串與char *字符串的版本::追加(),字符串替換::()和字符串::比較()
string& append(const string& str, size_t pos, size_t n);
string& append(const char* s, size_t n);
我很好奇的是爲什麼串::附加的字符*版本()不提供額外的參數size_t pos
,如下之一:
string& append(const char* s, size_t pos, size_t n);
對於其它兩個功能,情況也是相同的:
int compare(size_t pos1, size_t n1, const string& str, size_t pos2, size_t n2) const;
int compare(size_t pos1, size_t n1, const char* s, size_t n2) const;
string& replace(size_t pos1, size_t n1, const string& str, size_t pos2, size_t n2);
string& replace(size_t pos1, size_t n1, const char* s, size_t n2);
這些函數的char *版本缺少參數size_t pos2
,這不像它們的字符串&副本那樣靈活。我的問題如下:
- 爲什麼std :: string設計它的接口是這樣的?
- 爲什麼char *版本函數還有
size_t pos
呢? - 背後有什麼考慮?
謝謝您的閱讀!
+1;) – chill
此外,'str.append(PTR,POS,LEN);'只有一個字符不是'str.append短(PTR + POS ,len);'(這取決於你的空白習慣)。 – zneak