vector基本

vector初始化

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<int> v1(10) ; //10个int数据,每个都为0
    std::vector<int> v2(10,100);//10个int数据,每个为100
    std::vector<int> v3{1,2,3,4,5};//5个int数据,分别为1,2,3,4,5

    std::vector<std::string> v4{"C++"};
    std::vector<std::string> v5{10};
    std::vector<std::string> v6{10,"C++"};

    std::vector<std::string> v7(10);
    std::vector<std::string> v8(10,"C++");
    std::vector<std::string> v9{"C++","","人类的好朋友"};

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v1)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v2)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v3)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v4)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v5)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v6)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v7)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v8)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    std::cout<<"--------------------------------------"<<std::endl;

    for(auto i : v9)
        std::cout<<i<<"  ";
    std::cout<<std::endl;

    return 0;
}

 

string和vertor下标只能访问已经存在的元素,不能创建元素(编译不会出错,运行时出错)

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<int> i ;
    i[0] = 10 ; //错误

    return 0;
}

 

下标越界编译运行都没有报错,但是已经出错

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<int> i(10) ;
    i[100] = 100 ; //错误

    std::cout<<i[100]<<std::endl;
    return 0;
}

 

向空的vector中添加元素

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<int> i;

    for(decltype(i.size()) index=0;index<=100;++index)
    {
        i.push_back(index) ;
    }

    for(auto& re : i)
    {
        re *= re ;
        std::cout<<re<<std::endl ;
    }
}

 

统计各个分段内的人数(0-9,10-19...90-99,100)

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<unsigned> num(11,0) ;//11个元素,每个为0

    unsigned grade = 0 ;
    while(std::cin>>grade)
        if(grade<=100)
            ++num[grade/10] ;
    for(auto i : num)
        std::cout<<i<<" ";
    std::cout<<std::endl;
}

 

 

和string一样,vector也有size()和empty()方法

 

posted @ 2016-11-29 20:01  郭志凯  阅读(2663)  评论(0编辑  收藏  举报