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

#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值