dre*_*lax 13 c++ string capacity allocator
在C++标准库中,std::string有一个公共成员函数capacity(),它返回内部分配存储的大小,一个大于或等于字符串中字符数的值(根据此处).这个值可以用于什么?它与自定义分配器有关吗?
std::string
capacity()
Mar*_*tos 10
你更可能使用reserve()成员函数,它设置的能力,至少提供的值.
reserve()
在capacity()成员函数本身可能被用于避免分配内存.例如,您可以通过池回收使用过的字符串,并根据其容量将每个字符串放在不同大小的存储桶中.然后,池的客户端可以请求已经具有一些最小容量的字符串.
Vik*_*ehr 6
该string::capacity()函数std::string在必须重新分配内存之前返回可能包含的总字符数,这是一项非常昂贵的操作.
string::capacity()
A std::vector以相同的方式工作,所以我建议你在std::vector 这里查看分配和初始化内存之间差异的详细解释.
std::vector
更新
嗯,我可以看到我误解了这个问题,实际上我认为我从未在std :: string或std :: vector上使用过capacity(),似乎很少有任何理由,因为你还是要调用reserve.
归档时间:
15 年,5 月 前
查看次数:
465 次
最近记录: