怎么区别string的capacity和size
#include <iostream>
#include <string>
using namespace std;
int main()
{
string st1("This is a test!");
cout<<st1.capacity()<<endl;
cout<<st1.size()<<endl;
return 0;
}
上面这个程序在VC6.0下得到结果是31和15,但是在linux下得到结果却是15和15,这个是什么原因产生的,是编译器的原因么,还是别的什么原因。这两个函数的区别在哪,请各位大侠帮忙 C++string? capacitysize
[解决办法]
capacity是当前string拥有的内存的大小
为了保证string能快速添加元素
一般都预分配一定内存
capacity返回预分配的内存大小
又由于c++标准库没有规定string的实现
所以不同的编译器采用不同的标准库
大小会不一样
size返回字符串中现在拥有的字符数
到'\0'为止
不包含'\0'
[解决办法]
capacity是当前如果不进行内存重新非配的情况下字符串的容量,size返回当前实际字符的个数