C++經常使用集合開發:STL vector

1、定義ios

       vector是C++中的一種數據結構,確切的說是一個類。它至關於一個動態的數組,是一個順序容器,可以在尾部高效地插入和刪除元素,同時支持隨機訪問其中的值。動態改變大小能夠達到最大節約空間的目的。數組

 

2、基本操做數據結構

(1)頭文件:#include<vector>函數

(2)建立vector對象:vector<int/double/string/…> m_vec;spa

(3)使用下標訪問元素:m_vec [0],m_vec [1],…code

(4)使用迭代器訪問元素:對象

vector<int>::iterator vecItem;
for(vecItem = m_vec.begin(); vecItem!= m_vec.end(); vecItem ++)
{
    cout << * vecItem << endl;
}

 

 

3、經常使用成員函數string

(1)從尾部插入一個元素:push_back(data);it

(2)從尾部刪除一個元素:pop_back();io

(3)從某一位置插入一個元素:insert(pos, data)

(4)從某一位置刪除一個元素:erase(pos);

(5)從某一區間刪除若干元素:erase(begPos, endPos);

(6)返回第一個數據:front();

(7)返回最後一個數據:back();

(8)返回容器第一個元素的迭代器:begin();

(9)返回容器最後一個元素的迭代器:end();

(10)返回容器中實際數據的個數:size();

(11)重置容器大小:resize(num);

(12)判斷容器是否爲空:empty();

(13)刪除容器中全部元素:clear();

 

4、示例代碼

#include <iostream>  
#include <vector>

using namespace std;  

void main()
{
    vector<int> vec;
    vector<int>::iterator vecItem;

    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);
    vec.push_back(4);

    cout << "The first data is : " << vec.front() << endl;
    cout << "The last data is : " << vec.back() << endl;

    cout << "All datas are : ";
    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)
    {
        cout << *vecItem << "  " ;
    }
    cout << endl;

    vec.pop_back();
    cout << "All datas are : ";
    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)
    {
        cout << *vecItem << "  " ;
    }
    cout << endl;

    vec.insert(vec.begin()+1, 4);
    cout << "All datas are : ";
    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)
    {
        cout << *vecItem << "  " ;
    }
    cout << endl;

    vec.erase(vec.end()-2);
    cout << "All datas are : ";
    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)
    {
        cout << *vecItem << "  " ;
    }
    cout << endl;

    cout << "The num of datas is : " << vec.size() << endl;
    vec.resize(2);
    cout << "The num of datas is : " << vec.size() << endl;

    cout << "The vector is empty ? " << vec.empty() << endl;
    vec.clear();
    cout << "The vector is empty ? " << vec.empty() << endl;
}
相關文章
相關標籤/搜索