【问题标题】:How do I add elements to a vector of objects and print them?如何将元素添加到对象向量并打印它们?
【发布时间】:2016-10-16 15:11:05
【问题描述】:

我们的老师告诉我们创建一个对象向量并对其执行操作,但我不明白如何正确地做到这一点:我试图用最少的数据制作一个简单的项目,这样我就可以知道我在做什么.

我有这门课

class Obj {

    private:

        int num;

    public:

        Obj();

        void setNum(int nuovo_num);
        int getNum();

};

然后是这个,带有 Obj 的向量

class VettObj{

    private:

        vector<Obj> vett;

    public:

        VettObj();

        void setVett();
        void stampaVett();

};

我最初的想法是使用迭代器,但我只是把事情弄得一团糟,经过几乎毫无用处的研究,我决定使用一个通用的整数计数器。

我发现我不应该在 VettObj 构造函数中写任何东西,因为它会自动初始化东西,所以我把它留空。

添加元素的方法是这样的

void VettObj::setVett(){


    Obj temp;
    int i;

    i = 0;
    while(i < 5){


        temp.setNum(10);

        vett.push_back(temp);

        i++;
    }

}

以及打印元素的那个

void VettObj::stampaVett(){


    int i;

    i = 0;
    while(i < 5){

        vett[i].getNum();

        i++;
    }

}

当我编译时,一切都很顺利,但是当我运行程序时,屏幕上什么也没有。我不想主要使用矢量函数(如果没有必要),因为我看到很多人都可以这样做。我真的很想知道如何使用迭代器来做到这一点。请帮忙????

【问题讨论】:

  • 调试器是解决此类问题的正确工具。 询问 Stack Overflow 之前,您应该逐行浏览您的代码。如需更多帮助,请阅读How to debug small programs (by Eric Lippert)。至少,您应该 [编辑] 您的问题,以包含一个重现您的问题的 Minimal, Complete, and Verifiable 示例,以及您在调试器中所做的观察。
  • 问一个具体的问题。您的程序起源的详细背景故事与任何事情都没有任何关系。
  • 您应该以“Hello World”开头。为什么您认为在您的程序中会在屏幕上打印任何内容?它不会神奇地读懂你的想法,做你想做的事。

标签: c++ object vector printing iterator


【解决方案1】:

您实际上并没有在 stampaVett() 方法中打印任何内容。 你可以试试:

void VettObj::stampaVett(){

    int i = 0;

    while (i < 5){

        std::cout << vett[i].getNum();

        i++;
    }

}

我还建议对方法或变量使用英语而不是意大利语,因为 SO 是一个国际社区。

【讨论】:

  • 是的,就是这样:最后,我所做的研究并非毫无用处。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 2021-01-24
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多