#include <vector>
using namespace std;
int main()
{
vector<int> resizeVect;
vector<int> reserveVect;
resizeVect.resize(50, 2); //立即分配50個int,每個值爲2,默認值爲0,如果是class默認構造函數
vector<int>::iterator iter = resizeVect.begin();
printf("out put resizeVect value start\n");
for(; iter != resizeVect.end(); iter++)
{
printf("%d ", *iter);
}
printf("\nout put resizeVect value end\n");
printf("resizeVect capacity %d \n", resizeVect.capacity());
printf("resizeVect size %d \n", resizeVect.size());
resizeVect.push_back(3); //添加一個值後,超出了capacity,capacity增加一半
printf("resizeVect capacity %d \n", resizeVect.capacity());
printf("resizeVect size %d \n", resizeVect.size());
printf("\r\n \r\n");
reserveVect.reserve(50); //預留capacity爲50,但是沒有內存,當然也不會有值
iter = reserveVect.begin();
printf("out put resizeVect value start\n");
for(; iter != reserveVect.end(); iter++)
{
printf("%d ", *iter);
}
printf("\nout put resizeVect value end\n");
printf("reserveVect capacity %d \n", reserveVect.capacity());
printf("reserveVect size %d \n", reserveVect.size());
reserveVect.push_back(3); //添加一個值後,沒有超出capacity,capacity保持不變,size+1
printf("reserveVect capacity %d \n", reserveVect.capacity());
printf("reserveVect size %d \n", reserveVect.size());
system("pause");
return 1;
}
vector中resize和reserve的區別,代碼驗證
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.