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; }

相关文章
相关标签/搜索