我們的老師告訴我們要創建一個對象向量並對其執行操作,但我無法理解如何正確地做到這一點:我試圖用最少的數據創建一個簡單的項目,以便我能知道我在做什麼。如何將元素添加到對象的矢量並打印它們?
我有這個類
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++;
}
}
當我編譯了一個,一切順利,但是當我運行程序我什麼也沒得到的屏幕。我不想主要使用矢量函數(如果不是必需的話),因爲我看到很多人都可以這樣做。我真的想知道如何用迭代器來做到這一點。幫助?
解決此類問題的正確工具是您的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
問一個**具體的**問題。程序起源的詳細背景故事與任何事情都沒有關係。 –
你可能應該從「Hello World」開始。你爲什麼在你的程序中想什麼會打印在屏幕上?它不會神奇地閱讀你的想法並做你想做的事。 – user463035818