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;
}
相关文章
相关标签/搜索