陣列雖然很簡單的結構, 但是使用起來還是不免會出現錯誤。。 現在寫這篇文章,主要是為了避免以後犯同樣的錯誤。。。
先解析**:
std::listlist_str;
//std::listlist_str;
for (int i = 0; i < 4; i++)
; std::cin >> str;
list_str.push_back(str);
}
c++中的list加入四個元素。。 這些字串由使用者輸入,區域性的陣列儲存。
然後列印輸出發現, 四個元素都是一樣的。 。
分析: 1. 改list儲存的元素是字串的指標。。 2. 該字元陣列是區域性變數。 每次loop完之後, 都會置為0。然後指向當前次輸入的字串。。
結論: 需要知道容器內儲存的是內容是什麼型別的。 如果是指標的話,那麼指標所指向的內容就不應該為區域性變數。
更正方法:
由固定的陣列來儲存字串的內容。
char str[6] = ;
再談子陣列 子串問題
這類問題都是求乙個滿足某種條件的連續的段,相對於子串行。字串和陣列的主要區別是,前者因為由字元而不是數值組成,一般不會有最大值,最小值,求和這種問題。對於字串的子串問題,一般條件是子串符合某種pattern 回文 有序 或者滿足某種統計特徵 子串內無重複字元,最多重複2次,包含了給定字符集的所有字元...
再談「字串拼接」的效率
拼接字串,大體分為兩種方式,一種通過 號拼接 方式1 這種方式在ie6中效率是極其低下的,因此就出現了第二種方式 採用陣列儲存,最後通過join拼接,這種方式的效率在ie6下對比會發現速度差異非常大。此外還有很多朋友估計沒有注意過,陣列拼接的方式又分為兩種,一種是通過push將字串放入陣列 方式2 ...
再談「字串拼接」的效率
拼接字串,大體分為兩種方式,一種通過 號拼接 方式1 這種方式在ie6中效率是極其低下的,因此就出現了第二種方式 採用陣列儲存,最後通過join拼接,這種方式的效率在ie6下對比會發現速度差異非常大。此外還有很多朋友估計沒有注意過,陣列拼接的方式又分為兩種,一種是通過push將字串放入陣列 方式2 ...