C++ - 關於vector的輸入和cin的聯系


我還是見識短淺,學到現在為止,我並沒有見過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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM