我正在实施节目交易或不交易,有一个类'框',在主文件中,我用来存储框的随机值,而且,我保存了向量中的每个框。即时通讯现在尝试在屏幕上打印保存在矢量中的方框,而不是成功,任何帮助???
//random assignation of pound value to the 22 boxes
for (int e = 1; e < 23; e++)
{
int pos;
bool op = true;
while (op)
{
pos = rand();
if (pos > 0 && pos < 23)
{
if (myArray[pos][1] == 0)
{
myArray[pos][1] = 1;
op = false;
}
}
}
box b(e, myArray[pos][0]); //creating the class box
game_box.push_back(b); //function of the vector to insert a data in it
}
//show boxes
for (auto a = game_box.begin(); a!= game_box.end(); a++)
{
cout << *a << endl;
}
答案 0 :(得分:0)
首先需要从a。
中删除解除引用运算符(*
)
接下来,您需要为框添加输出运算符。假设该框是一个包含成员数据member1
和member2
的类,它将类似于:
friend std::ostream& operator<< (std::ostream &out, const box& b)
{
out << box.memeber1 << " " << box.member2;
}
关键是您需要为每个类定义此运算符。
一旦你完成了它并使其正常工作,你可能也想看看this library为所有stl容器定义<<
运算符。这可以让你替换
for (auto a = game_box.begin(); a!= game_box.end(); a++)
{
cout << *a << endl;
}
简单地
cout << game_box << endl;
答案 1 :(得分:0)
这有效..
class Box
{
float pound_contained;
int box_number;
public:
Box(int box_number, float pound_contained);
int getbox_number();
float getpound_contained();
};
int Box::getbox_number()
{
return this->box_number;
}
float Box::getpound_contained()
{
return this->pound_contained;
}
main()
{
vector<Box> game_box;
Box* boxes = &game_box[i];
cout <<boxes->getbox_number()<<endl;
}