如何创建一个循环,每次迭代创建一个新的变量/对象?

时间:2015-12-04 03:19:54

标签: c++ loops

我正在控制台中进行池游戏模拟。有一个名为Ball的课程。基本上,我希望用户输入桌面上有多少个球池,以及它们的位置和速度。我能看到这个工作的唯一方法是,如果我使用从1(或0)到循环中下面内容的池球数量的循环。这有两个问题,但

问题1:我不知道如何为每个循环创建一个变量

问题2:因为它在循环中,它只在循环中的代码块中创建变量,这意味着我不能在它之外使用它。

cout << "Please tell me where to drop the ball (x y z): ";
int xp,yp,zp;
cin >> xp >> yp >> zp;
if (!cin) exit(EXIT_FAILURE);
vec3 position(xp,yp,zp);
cout << "Please tell me how fast the ball is moving (x y z): ";
int xv,yv,zv;
cin >> xv >> yv >> zv;
vec3 velocity(xv,yv,zv);
cout << "Please tell me how heavy the ball is: ";
int weight;
cin >> weight;
cout << "Please tell me what number the ball is: ";
int number;
cin >> number;
Ball my_ball(number,weight,position,velocity);

做什么?

2 个答案:

答案 0 :(得分:0)

使用容器(例如vector)并将对象存储在该容器中。

阅读STL。它提供了一个有用的容器,算法和其他功能库。

答案 1 :(得分:0)

使用vector制作Ball s:

的集合
vector<Ball> balls;

for (;;)
{
   // …
   balls.emplace_back(number, weight, position, velocity);
   // or:
   balls.push_back(Ball(number, weight, position, velocity));
}

emplace_backvector的末尾构造一个新元素,将提供的参数传递给Ball构造函数。