我還是見識短淺,學到現在為止,我並沒有見過vector還可以用cin去進行輸入的寫法……
例子:
vector<int>v1,v2; // 開辟一維數組
v1.resize(100),v2.resize(100);
for(int i=0;i<=6;i++)
cin>>v1[i],cin>>v2[i];
為什么不resize直接cin輸入程序會崩潰?
因為cin后輸入的是變量,需要我們手動開辟內存,所以是具有內存的,
但是cin>>v1[i]的時候,v1[i]還不存在,當時並未分配內存,
所以我們首先需要去進行內存分配。
而vector直接利用本身的push_back()可以自動擴容,擴容大約是兩倍(也有說1.5倍等說法的)。
再引申一下其他幾個之前沒接觸過的概念
capacity:容器在分配新的存儲空間之前能存儲的元素總數。(指容器可存儲的最大總數)(空間就是capacity,對象就是容器中的元素)
size:當前容器所存儲的元素個數。(指size是當前容器存儲的個數)
resize:分配空間+創建對象,默認初始化為0。