C++中向量的基礎知識

向量(vectors ios

    Vector是向量類型,是一種對象實體,使用它時,只要加上頭文件<vector>便可。 數組

    Vector能夠有四種定義方式: 函數

        (1)vector<int> a(10); spa

        (2)Vector<int>b(10,1); 設計

        (3)Vector<int>c(b); 對象

        (4)Vector<int>d(b.begin(),b.begin()+3) it

    Vector<int>是模板形式,其中尖括號內能夠是任何合法的數據類型,在此表示一個整數向量, io

    (1)定義了十個整數元素的向量,但沒有給出初值,因此其值是不肯定的 模板

    (2)定義了十個整數元素的向量,且每一個元素初值是1,和明顯這種定義方式遠遠優於數組 程序設計

    (3)是用另外一個現成的向量來建立一個向量

    (4)定義了其值依次爲b向量的第0個到第2個(共3個)元素的向量

    所以,向量能夠選擇另外一個向量的一部分進行復制。

    特別的,向量還能夠從數組得到初值,例如:

int  a[7]={1,2,3,4,5,6,7};

Vector<int> va(a,a+7);

    上面第四種形式的b.begin()b.end()表示向量起始元素的位置和最後一個向量元素以外的位置,向量元素位置也屬於一種類型,稱爲遍歷器,遍歷器不單表示元素位置,還能夠在容器中先後挪動。每種容器都有對應的遍歷器,向量的遍歷器類型爲vector<int>::iterator

    所以,輸出向量的元素有兩種方式,

        for(int i=0;i<a.size;i++)     第一種

        cout<<a[i]<<」  」;

        for(vector<int> it=a.begin();it!=a.end();it++)    第二種

        cout<<*it<<」  」;

    a.begin()表示向量的第一個元素,這種方式稱爲一個對象捆綁一個函數調用,表示對該對象進行某種操做,相似這樣的使用方式稱爲調用對象a的成員函數,這種方式在對象程序設計中很廣泛,向量中的操做都是經過成員函數完成的。

    它的經常使用操做有

        a.assign(b.begin(),b.begin()+3);                //將向量b0-2元素構成向量賦值給a

        a.assign(4,2);                                      //使a向量只含0-3元素,且均賦值2

        Int x=a.back();                                      //將向量a的最後一個元素賦值給整數x

        a.clear();                                             //將向量a清空

        If(a.empty())cout<<」empty」;                   //a.empty()經常使用做判斷條件,它判斷向量空否

        int y=a.front();                                   //將a的第一個元素賦值給y

        a.pop_back();                                      //刪除最後一個元素

        a.push_back(10);                                 //在向量最後插入一個元素,其值爲10

        a.resize(10);                                      //將向量元素調至10個元素,多則刪,少則補,其值不肯定

        a.resize(10,2);                                   //將向量元素調至10個,多則刪,少則補,其值爲2

        if(a==b)cout<<」equal」;                       //向量能夠比較,!=<等。

//======================================================== //判斷yy.txt中有多少對兩兩相等的整數(yy.txt中有若干個整數) //======================================================== #include <iostream> #include <fstream> #include <vector> using namespace std; int main() { ifstream in("yy.txt"); vector<int> v; for(int a;in>>a;) v.push_back(a); int pair=0; for(int i=0;i<v.size()-1;i++) for(int j=i+1;j<v.size();j++) if(v[i]==v[j]) pair++; cout<<pair<<endl; }

相關文章
相關標籤/搜索