標準庫型別的vector表示物件的集合,其中所有的物件都有相同的型別;集合中每乙個物件都有乙個與其對應的索引,索引用於訪問物件。使用時必須包含:
#includeusing std::vector;
1、定義和初始化vector物件
vectorsvec;//預設初始化,svec不包含任何元素
//事實上,最常見的方式是先定義乙個空的vector,
//然後當執行時獲取到元素值就新增進去;
vectorivec;
//往ivec中新增一些值
vectorivec1(ivec);
vectorivec2=ivec;
列表初始化
vectorsvec=;//使用'='進行列表初始化
//也可以將初始值都放在花括號裡進行列表初始化
vectorv;
建立制定數量的元素
vectorivec(10,-1);//10和int元素,每個都初始化為-1
vectorivec1(10);//10個int元素,每個初始化為0
vectorsvec(10,"hello");//10個string元素,每個都初始化為"hello"
vectorsvec1(10);//10個string元素,每個都為空string物件
建立二維陣列
vector> arr(2,vector(5));//建立2行5列的二維陣列,初值值為0
2、向vector中新增元素
push_back負責把乙個值當成vector物件的尾元素「push」到vector物件的"尾端back"
vectordvec;
double temp;
for(int i=0;i<100;i++)
從標準輸入中讀取單詞,存入vector中
string word;
vectortext;
while(cin>>word)
3、vector的其他操作
使用引用改變vector中的元素
vectorv;
for(auto &i:v)
特別注意:對於乙個空的vector,不能使用下標向其中新增元素。只能使用push_back. 只能對確知已存在的元素執行下標操作。
4、使用迭代器
begin成員負責返回指向第乙個元素(或第乙個字元)的迭代器;end成員負責返回指向容器(或string物件)的尾元素的下乙個位置的迭代器。
begin和end返回的具體型別由物件是否是常量決定,如果物件是常量,begin和end返回const_iterator;如果物件不是常量,返回iterator;
vector::iterator it;//it是能讀寫的vector的元素
string::iterator it1;//it1是能讀寫的string物件中的字元
vector::const_iterator it2;//it2只能讀元素,不能寫元素
string::const_iterator it3;//it3只能讀字元,不能寫字元
例子,使用迭代器依次輸出text的每一行知道遇到第乙個空白行為止:
for(auto it=text.cbegin();it!=text.cend()&&!it->empty();++it)
{ cout<<*it 1.標頭檔案 include 2.用法 1.vectorb 只是代表著 建立了乙個vector的空的物件 別以為這時候的b 0 b 1 等於0 天真。2.vectorv3 10,0 建立乙個有10個元素0的容器 這個時候b 0 0 b 9 0!這個跟陣列一樣 還是會超時 如果你申請的比較大的話 一般... 在c 中,vector是乙個十分有用的容器,下面根據多篇文章對這個vector做一下總結。首先在程式開頭處加上 include以包含所需要的類檔案vector,還有一定要加上using namespace std include using namespace std 例2.1 宣告乙個int向量以... c 內建的陣列支援容器的機制,但是它不支援容器抽象的語義。要解決此問題我們自己實現這樣的類。在標準c 中,用容器向量 vector 實現。容器向量也是乙個類模板。標準庫vector型別使用需要的標頭檔案 include vector 是乙個類模板。不是一種資料型別,vector是一種資料型別。vec...關於vector的用法
C 中vector容器的基本用法總結
C 中vector的用法