小编Ani*_*Deb的帖子

C++ - 字符串容量模式

我注意到 C++ 中的字符串容量遵循以下模式:

  • 初始字符串大小为 15
  • 对于大于特定大小“块”的任何字符串,容量将增加一倍。

以下是长度不超过 500 的字符串的字符串容量:

15
30
60
120
240
480
960
Run Code Online (Sandbox Code Playgroud)

使用以下 C++ 程序找到了容量:

#include <iostream>
#include <vector>

using namespace std;

string getstr(int len) { 
    string s = "";
    for (int i=0; i<len; i++) {
        s.append("1");
    }
    return s;
}

int main() {
    vector<int> capacities;
    int prevcap;
    for (int i=0; i<500; i++) {
        int cap = getstr(i).capacity();
        if (cap > prevcap) {
            capacities.push_back(cap);
            prevcap = cap;
        }
    }
    for (int i : capacities) {
        cout …
Run Code Online (Sandbox Code Playgroud)

c++ string dynamic-memory-allocation

5
推荐指数
1
解决办法
110
查看次数

标签 统计

c++ ×1

dynamic-memory-allocation ×1

string ×1