首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何区别string的capacity和size

2013-01-19 
怎么区别string的capacity和size#include iostream#include stringusing namespace stdint main(){st

怎么区别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返回当前实际字符的个数

热点排行