竹園論壇

標題: c++ vector [打印本頁]

作者: 林宇翔    時間: 2014-9-17 19:32
標題: c++ vector
vector 完整用法
作者: domen111    時間: 2014-9-17 20:45
本帖最後由 domen111 於 2014-9-17 21:06 編輯

vector感覺就像陣列一樣,不過它的大小是可變動的,所以它可以自由的新增元素,一般的陣列只能修改裡面的元素並不能新增刪除
那些v.begin()、v.end()是iterator的用法,如果看不懂可以再問(或者不管它也沒關係)
[C++] 純文本查看 復制代碼

//vector的各種用法

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char** argv) {
        vector<int> v; //宣告內容為int型態的vector
        v.clear(); //將vector的內容清空
        
        //將資料新增至vector(補在後面)
        v.push_back(11);
        v.push_back(22);
        v.push_back(22);
        v.push_back(99);
        v.push_back(11);
        v.push_back(22);
        
        v.insert(v.begin()+1,1); //在vector中間插入元素(效率會比較差)
        v.pop_back(); //移除最後一筆元素
        
        //將vector裡面的元素全部輸出的2種方法
        vector<int>::iterator iter;
        for(iter=v.begin();iter!=v.end();iter++){
                cout << *iter << ", ";
        }
        cout<<endl;
        //或
        for(int i=0; i<v.size() ; i++){
                cout << v << ", ";
        }
        cout<<endl;
        
        cout<<v.empty()<<endl; //vector是否為空
        
        v.reserve(50);//保留空間
        cout<<v.size()<<endl;//6,vector大小
        cout<<v.capacity()<<endl;//50
        
        v.resize(50,123);//小於原來大小,會刪掉多餘元素,大於原來大小會補123(如果沒寫就補0)
        
        cout<<v.front()<<v.back()<<endl;//最前和最後一筆資料
        
        v.erase(v.begin()+3);
        v.erase(v.begin()+3,v.begin()+6);
}









歡迎光臨 竹園論壇 (http://forum.tfcis.org/) Powered by Discuz! X3.2