测试发现

1.    std::string value(2, ‘a’);

       结果:   value.size() == value.length()==2;  value.capacity()==31

      std::string value(31, ‘a’);

       结果:   value.size() == value.length()==value.capacity()==31;

 

2.    std::string value(32, ‘a’);

       结果:   value.size() == value.length()==32;   value.capacity()==63;

       std::string value(63, ‘a’);

       结果:   value.size() == value.length()==value.capacity()==63;

 

3.     std::string value(80, ‘a’);

       结果:   value.size()==value.length()==80;       value.capacity()==95;

        std::string value(95, ‘a’);

        结果:  value.size()==value.length()==value.capactiy()==95;

 

举这3个例子不难发现

    a) .   size() 和 length() 效果一样,不过C++的话,倾向于用 size();

    b) .   string的容量,也就是capactiy(),如果 value值为空,则capactiy()==0;

            否则,capacity() 初始值为32,根据string 存储的量的变化而变化

            初始值=32,步长=32;