C++STL学习笔记_(1)vector知识

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

//数组元素的 添加和删除
void main31()
{
    //获取元素的大小
    vector<int> v1;
    cout <<"length: "<<v1.size()<<endl;
    v1.push_back(1);
    v1.push_back(3);
    v1.push_back(5);
    cout <<"length: "<<v1.size()<<endl;

    cout<<"头部元素"<<v1.front()<<endl;


    //修改头部 元素的值
    //函数返回值当左值
    v1.front() = 11;
    v1.back()  = 55;

    //获取头部和尾部元素
    while (v1.size()>0)
    {
        cout<<"尾部元素"<<v1.back();//获取尾部的元素
        v1.pop_back();//删除尾部元素
    } 
}
//vector的初始化
void main32()
{
    //1.
    vector<int> v1;
    v1.push_back(1);
    v1.push_back(3);
    v1.push_back(5);
    v1.push_back(7);

    //2.
    vector<int> v2 = v1;//对象初始化

    //3.
    vector<int> v3(v1.begin(),v1.begin()+2);

}

void printV(vector<int> &v)
{
    for (int i =0;i<v.size();i++)
    {
        cout<<v[i]<<endl;
    }
}

//vector的遍历:通过数组的方式
void main33()
{
    vector<int> v1(10);//提前把内存准备好
    for (int i = 0;i<10;i++)
    {
        v1[i] = i + 1;
    }

    for (int i = 0;i<10;i++)
    {
        printf("%d\n",v1[i]);
    }
    printV(v1);
}


//push back的强化
void main34()
{
    vector<int> v1(10);//提前把内存准备好
    v1.push_back(100);//从数组的尾部插入元素
    v1.push_back(200);
    cout<<"size:"<<v1.size()<<endl;
    printV(v1);
}

//迭代器  
void main35()
{
    vector<int> v1(10);
    for (int i =0;i<10;i++)
    {
        v1[i] = i+1;
    }
    //正序遍历
    for (vector<int>::iterator it = v1.begin();it != v1.end();it++)
    {
        cout<<*it<<endl;
    }

    //逆序遍历
    for (vector<int>::reverse_iterator rit = v1.rbegin();rit != v1.rend();rit++)
    {
        cout<<*rit<<endl;
    }

}

//vector 删除
void main36()
{
    vector<int> v1(10);
    for (int i =0;i<10;i++)
    {
        v1[i] = i+1;
    }
    //区间删除
    v1.erase(v1.begin(),v1.begin()+3);

    //指定位置删除
    v1.erase(v1.begin());//在头部删除一个元素
    printV(v1);

    cout<<endl;
    //根据元素的值
    v1[1] = 2;
    v1[3] = 2;
    printV(v1);

    for (vector<int>::iterator it = v1.begin();it != v1.end();)
    {
        if (*it == 2)
        {
            //it = v1.erase(it) 删除后,要接回、新的位置
            it = v1.erase(it);//当删除迭代器所指向的元素的时候,erase会让it自动下移
        }
        else
        {
            it++;
        }
    }
    printV(v1);

    cout<<endl;

    //插入元素
    v1.insert(v1.begin(),100);
    v1.insert(v1.end(),100);
    printV(v1);
}

void main()
{
    //main31();
    //main33();
    //main35();
    main36();
    cout<<"hello..."<<endl;
    return;
}

 

 

posted on 2017-01-05 09:16  金秀  阅读(160)  评论(0编辑  收藏  举报

导航