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()方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM