vector數組用法及舉例


vector詳解

1.調用vector的頭文件

注意:c++編程中填寫這個頭文件

 

2.vector的用法

注意:大概來講,vector就是一個變長數組,與a[]這種普通數組不同的是,他不用定義多長,是根據用戶的用法變化的,同時它的用法及方法也與普通數組不同

 

3.vector的存取方法及特殊

注意:vector的存取與棧相同(即一種無蓋有底的“洞”,從頂端存入,從頂端取出);

 

3.vector數據的讀取及其他方法

 

注意:iterator是一種迭代器,即一種讀取器,其功能類似for循環;利用iterator來輸出或存取大量的數據;


 

vector優勢:

大小能否變化

vector屬於變長容器,即可以根據數據的插入刪除重新構建容器容量,但array和數組屬於定長容量。

初始化

數組不能將數組的內容拷貝給其他數組作為初始值,也不能用數組為其他數組賦值,而向量可以。

vector提供了更好的數據訪問機制,即可以使用及at訪問方式,使得訪問更加安全。而數組只能通過下標訪問,在程序的設計過程中,更容易引發訪問錯誤。

vector提供了size和判空的獲取機制,而數組只能通過遍歷或者通過額外的變量記錄數組的size。

vector提供了可以動態插入和刪除元素的機制,而array和數組則無法做到,或者說array和數組需要完成該功能則需要自己實現完成。

深度搜索:內存中的位置

C++中數組為內置的數據類型,存放在棧中,其內存的分配和釋放完全由系統自動完成;vector,存放在堆中,由STL庫中程序負責內存的分配和釋放,使用方便。


 

vector實例幫助理解

題目描述

小魚最近被要求參加一個數字游戲,要求它把看到的一串數字(長度不一定,以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數組由於其特殊性適用一些算法,但也不適用一些場合,所以一般使用普通的數組即可;

 


免責聲明!

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



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