admin管理员组文章数量:1611513
(1)容器容量:容器所能容纳元素的个数,通常大于容器的实际存储元素的个数。
s.capacity();//查看容器容量
s.reserve(len);//扩展当前容器的容量,如果len大于当前容器容量,那么将会将容器的容量扩展为len,且不会对新扩展的空间进行初始化;当len小于等于当前容器容量时,什么也不做。
(2)容器大小:容器中当前存在元素的个数。
s.size();//查看当前容器的中元素的个数
s.resize(len);//设置当前容器的容量,如个len大于当前容器中元素的个数,新增的元素将并初始化为0。len小于容器的实际大小时,会将len之后的元素的全部清除为0。
通过情况向容器的容量是大于等于容器的大小的,就像杯子和杯子中的水的关系。一般需要容器的大小不会引起内存的重新分配(向杯子中加水),但修改容器的容量就会导致容器内存的重新分配(原来的杯子太小了,需要换新的杯子)。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> intArr;
intArr.push_back(1);
intArr.push_back(2);
intArr.push_back(3);
intArr.push_back(4);
intArr.push_back(5);
intArr.push_back(6);
cout << "1、修改前:容器size:" << intArr.size() << ",容器capacity:" << intArr.capacity() << endl;
vector<int>::iterator viter = intArr.begin();
for (; viter != intArr.end(); ++viter)
{
cout << *viter << ",";
}
cout << endl;
intArr.resize(3);
intArr.reserve(3);
cout << "2、修改后、容器size:" << intArr.size() << ",容器capacity:" << intArr.capacity() << endl;
viter = intArr.begin();
for (; viter != intArr.end();++viter)
{
cout << *viter << ",";
}
cout << endl;
intArr.resize(6);
intArr.reserve(10);
cout << "3、修改后、容器size:" << intArr.size() << ",容器capacity:" << intArr.capacity() << endl;
viter = intArr.begin();
for (; viter != intArr.end(); ++viter)
{
cout << *viter << ",";
}
cout << endl;
return 0;
}
版权声明:本文标题:容器容量和容器大小(capacity和size) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728620532a1166298.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论