1.調用vector的頭文件ios
注意:c++編程中填寫這個頭文件c++
2.vector的用法算法
注意:大概來說,vector就是一個變長數組,與a[]這種普通數組不一樣的是,他不用定義多長,是根據用戶的用法變化的,同時它的用法及方法也與普通數組不一樣編程
3.vector的存取方法及特殊數組
注意:vector的存取與棧相同(即一種無蓋有底的「洞」,從頂端存入,從頂端取出);安全
3.vector數據的讀取及其餘方法
spa
注意:iterator是一種迭代器,即一種讀取器,其功能相似for循環;利用iterator來輸出或存取大量的數據;設計
vector屬於變長容器,便可以根據數據的插入刪除從新構建容器容量,但array和數組屬於定長容量。blog
數組不能將數組的內容拷貝給其餘數組做爲初始值,也不能用數組爲其餘數組賦值,而向量能夠。遊戲
vector提供了更好的數據訪問機制,便可以使用及at訪問方式,使得訪問更加安全。而數組只能經過下標訪問,在程序的設計過程當中,更容易引起訪問錯誤。
vector提供了size和判空的獲取機制,而數組只能經過遍歷或者經過額外的變量記錄數組的size。
vector提供了能夠動態插入和刪除元素的機制,而array和數組則沒法作到,或者說array和數組須要完成該功能則須要本身實現完成。
深度搜索:內存中的位置
C++中數組爲內置的數據類型,存放在棧中,其內存的分配和釋放徹底由系統自動完成;vector,存放在堆中,由STL庫中程序負責內存的分配和釋放,使用方便。
小魚最近被要求參加一個數字遊戲,要求它把看到的一串數字(長度不必定,以0結束,最多不超過100個,數字不超過2^32-1),記住了而後反着念出來(表示結束的數字0就不要念出來了)。這對小魚的那點記憶力來講實在是太難了,你也不想一想小魚的整個腦殼纔多大,其中一部分仍是好吃的肉!因此請你幫小魚編程解決這個問題。
一行內輸入一串整數,以0結束,以空格間隔。
一行內倒着輸出這一串整數,以空格間隔。
輸入
3 65 23 5 34 1 30 0 |
輸出
30 1 34 5 23 65 3 |
具體代碼:
#include<iostream> #include<vector> using namespace std; int main(){ vector<int> a; int count=0; int x; while(cin>>x){ if(x==0) break; else a.push_back(x); } for(vector<int>::iterator it=a.end()-1;it>=a.begin();it--){ //iterator迭代器輸入輸出 cout<<(*it)<<" "; } return 0; }
使用iterator迭代器進行迭代輸入輸出;
注意:vector數組因爲其特殊性適用一些算法,但也不適用一些場合,因此通常使用普通的數組便可;