【发布时间】: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