针对类的向量增加及获得元素示例

来源:互联网 发布:淘宝nike官方旗舰店 编辑:程序博客网 时间:2024/06/07 03:36
#if 0    已知类A,分别定义元素为A,A*的向量类,增加对应的向量元素,并在屏幕上重新显示对应向量的值,即显示A中成员变量值n#endif#include <iostream>#include <vector>class A{public :    int n;public :    A(int n)    {        this->n=n;    }};int main(int argc,char *argv[]){    std::cout << "-----A的向量操作-----" << std::endl;    std::vector<A>cla_vec;    A a1(1);    A a2(2);    A a3(3);    cla_vec.push_back(a1);    cla_vec.push_back(a2);    cla_vec.push_back(a3);    int nSize=cla_vec.size();    std::cout << "通过数组输出:" << std::endl;    for(int i=0;i<nSize;i++)    {        std::cout << cla_vec[i].n << "\t" ;    }    std::cout << std::endl;    std::cout << "通过引用输出" << std::endl;    for(int i=0;i<nSize;i++)    {        A  &value=cla_vec.at(i);        std::cout << value.n << "\t" ;    }    std::cout << std::endl;    std::cout << "通过迭代器输出" << std::endl;    std::vector<A>::iterator cla_vec_iter=cla_vec.begin();    while(cla_vec_iter!=cla_vec.end())    {        std::cout << (*cla_vec_iter).n << "\t";        cla_vec_iter++;    }    std::cout << std::endl << std::endl;    std::cout << "-----A的指针向量操作-----" << std::endl;    std::vector<A*> pcla_vec;    A   *poin1=new A(1);    A   *poin2=new A(2);    A   *poin3=new A(3);    pcla_vec.push_back(poin1);    pcla_vec.push_back(poin2);    pcla_vec.push_back(poin3);    nSize=pcla_vec.size();    std::cout << "通过数组输出:" << std::endl;    for(int i=0;i<nSize;i++)    {        std::cout << pcla_vec[i]->n << "\t" ;    }    std::cout << std::endl;    std::cout << "通过引用输出" << std::endl;    for(int i=0;i<nSize;i++)    {        A * &value=pcla_vec.at(i);        std::cout << value->n << "\t" ;    }    std::cout << std::endl;    std::cout << "通过迭代器输出" << std::endl;    std::vector<A*>::iterator pcla_vec_iter=pcla_vec.begin();    while(pcla_vec_iter!=pcla_vec.end())    {        std::cout << (**pcla_vec_iter).n << "\t";        pcla_vec_iter++;    }    std::cout << std::endl;    delete poin1;    delete poin2;    delete poin3;    return 0;}

0 0
原创粉丝点击