初碰vector動態數組

vector是同一種類型的對象的集合,分配空間是連續的,但又是可以擴展的。

vector的數據結構很像數組,能非常高效和方便地訪問單個元素。

vector是一個類模板。

使用的時候必須包含相關頭文件

#include <vector>

vector對象的初始化:vector類定義了好幾種構造函數

vector<T> v1;
vector<T> v2(v1);//拷貝構造函數,v2是v1的副本
vector<T> v3(n,i);//v3包含 n個值爲i的元素
vector<T> v4(n);//v4含有值初始化的元素的n個副本

vector常用成員函數:

size() 返回元素的個數
clear() 清除所有元素
empty() 判斷是否爲空
back() 返回最後一個元素
push_back() 在末尾添加一個元素
pop_back() 刪除最後一個元素
erase() 刪除某個元素
insert() 插入一個元素
[] 返回元素
= 複製副本
重載運算符 [],=,>,<,<=,>=,!=,==

隨手的示例代碼:

#include <iostream>
#include <vector>
using namespace std;

typedef vector<int> INTVEC;

//普通實現輸出vector
//void ShowVec(const INTVEC& v)
//{
//  unsigned int i;
//  for (i = 0; i < v.size(); i++)
//  {
//      cout << v[i] << " ";
//  }
//  cout << endl;
//}

//用迭代器實現,通過迭代器來遍歷容器(string也是可以看成容器)
void ShowVec(INTVEC& v)
{
    INTVEC::iterator it;
    for (it = v.begin(); it != v.end(); ++it)
    {
        cout << *it << " ";
    }
    cout << endl;
}

int main(void)
{
    INTVEC v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
    v.push_back(5);
    v.push_back(6);
    ShowVec(v);

    cout << v.back() << endl;
    ShowVec(v);

    v.erase(v.begin() + 2);
    v.erase(v.begin(), v.begin() + 2);
    ShowVec(v);

    v.pop_back();
    ShowVec(v);

    system("pause");
    return 0;
}
發佈了49 篇原創文章 · 獲贊 96 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章