我聲明變量string s;
C++字符串使用最大緩衝區分配?
並做s = "abc";
現在它有3個字符的緩衝區。
s = "abcd"
後,它具有的4個字符的緩衝器。第三條語句
s = "ab"
問題是將它保持的4個字符緩衝區還是會重新分配一個2字符緩衝區後,現在
?
如果它將分配2個字符的緩衝區有什麼辦法我可以告訴它保持分配的最大緩衝區。
那麼它保留了最大尺寸的緩衝區嗎?
s = "ab"
s="abc"
s="a"
s="abcd"
s="b"
現在應該保持尺寸4.
的緩衝區是可能的嗎?
它取決於實現:如果給它分配一個新的字符串,容量較小,g ++將改變容量,而VC++通常會使用一組固定容量的最小容量。 (我懷疑你在考慮'std :: vector';你所描述的既不是g ++也不是VC++的行爲,我不能相信你都沒有見過這兩者。) –