如何打印以屏幕矢量?

时间:2014-07-31 15:21:09

标签: class iterator

我正在实施节目交易或不交易,有一个类'框',在主文件中,我用来存储框的随机值,而且,我保存了向量中的每个框。即时通讯现在尝试在屏幕上打印保存在矢量中的方框,而不是成功,任何帮助???

//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;
}

2 个答案:

答案 0 :(得分:0)

首先需要从a。

中删除解除引用运算符(*

接下来,您需要为框添加输出运算符。假设该框是一个包含成员数据member1member2的类,它将类似于:

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;
}