最初,我有一些看起来像的代码
class Ball
{
public:
double x , y ;
ofstream out ;
} ;
int main()
{
Ball array[N] ;
array[0].out.open("./position_1.txt") ;
array[1].out.open("./position_2.txt") ;
......
}
其中 N 是运行时确定的常数。但它最近遇到了可变长度数组问题。
我尝试遵循这篇文章的建议Can't set variable length with variable by using STL container。
int main()
{
vector<Ball> Balls ;
Ball b ;
b.out.open( "./position_1.txt" ) ;
Balls.push_back( b ) ;
......
}
它在 失败push_bak()
,因为无法复制流。
在运行之前我无法确定球的数量,我必须存储文件流而不是路径以提高效率(防止打开和关闭文件)。
有什么方法可以实现目标吗?谢谢