vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。使用vector 需要在標頭檔案中增加 #include
vector其實是乙個模板,我們在使用時必須指定元素的型別,如宣告乙個int型別的vector,
vectortest; //宣告乙個int型別的vector叫test。
vector初始化:
vectortest(10,-1); // test初始化為含有10個元素值為-1的vector容器。
或 vectortest=; //test含有元素為1,2,3,4這4個元素,這是c++新的標準,有的編譯器可能不支援。
如何動態的新增元素到vector中呢?
1. push_back() //
使用vector中的成員函式push_back()可以往vector中新增函式。長度不限。
可以通過下標修改、訪問指定位置的元素,如test[2]訪問vector中的第3個元素,與陣列類似。 或
通過迭代器訪問修改vector中的元素,如
vector::iterator it;
for(it=test.begin();it!=test.end();it++) //vector中的begin()成員函式獲得第乙個元素,end()獲得最後乙個函式。
cout<<*it<<" "; // 輸出vector中的所有元素。 這裡也可以修改元素的值 如 *it=10,將元素的值改為10;
2. at(int index) // 獲得指定下標的元素。
3. size() // 獲得vector的元素的個數。
4. empty() // 判斷vector是否為空,為空返回true。
5. erase() // 從指定容器刪除指定位置的元素或某段範圍內的元素,指向的是刪除元素的下乙個元素。
返回值是乙個迭代器.
特別注意:
如vector中有: 3 10 10 6 9 15
一一遍歷容器找到元素值為10,然後一一刪除
for(iter = v1.begin(); iter != v1.end(); iter++) }
修改後的**為:
for(iter = v1.begin(); iter != v1.end(); iter++)
} 最後vector中的元素為:3 10 6 9 15
注意:這裡只刪除了乙個10,原因是erase函式返回的是刪除元素的下乙個元素,然後這後面還有iter++,所以就跳過了後面那個10.
clear() // 移除容器中所有資料。
pop_back() // 刪除最後乙個資料。
insert(pos,elem) // 在pos位置插入乙個elem拷貝,傳回新資料位置。
c1.swap(c2)
swap(c1,c2) // 將c1和c2元素互換。
vector提供了erase(),pop_back(),clear()來刪除資料。
例子如下:
lista;
a.push_back(1);
a.push_back(6);
a.push_back(3);
a.push_back(6);
a.push_back(6);
a.push_back(2);
list::iterator itor;
a.remove(6);
for(itor=a.begin();itor!=a.end();itor++)
cout<<*itor<<" ";
顯示結果為:1 3 2。
c 中的vector容器
在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout 5 使用迭代器訪問元素.vector iterator i...
C 中vector容器的用法
1 標頭檔案 include.2 建立vector物件,vector vec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec.begin it vec.end it cout it 6 插入元素 vec.i...
C 中 vector(容器)的用法
vector 向量 c 中的一種資料結構,確切的說是乙個類.它相當於乙個動態的陣列,當程式設計師無法知道自己需要的陣列的規模多大時,用其來解決問題可以達到最大節約空間的目的.一.用法 1.檔案包含 首先在程式開頭處加上 include以包含所需要的類檔案vector 還有一定要加上using nam...