原來我有一些代碼,看起來像文件流,STL容器,和可變長度數組
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是一個運行時間來確定常數。 但它最近遭受了可變長度數組問題。
我嘗試通過使用STL容器遵循此帖子的建議Can't set variable length with variable。
int main()
{
vector<Ball> Balls ;
Ball b ;
b.out.open("./position_1.txt") ;
Balls.push_back(b) ;
......
}
它在push_bak()
失敗,因爲流不能被複制。
我無法確定運行前的球的數量,我必須存儲文件流而不是路徑來提高效率(防止打開和關閉文件)。
有什麼辦法可以達到目標嗎? 感謝
你試圖達到什麼目標?從單個文件加載可變數量的球座標? – Spook
是的,我有許多球的圖像,每個圖像有很多球。 – maythe4thbewithu
我有很多圖像,每個圖像都有很多球。 每個電影的球編號是固定的,但是在第一次識別後確定。我想跟蹤他們,1,2,..並將它們保存到1.txt,2.txt,..所以我保留每個文件流,以方便訪問和效率。 現在,我在課堂外維護/新建一組流,並將「ofstream out」更改爲「ofstream * out」...類似於以下建議。感謝您的建議。 但是,如果有更像使用C++ 11的建議那樣的「自然」方式,我會更有自信。但是,我的gcc不支持C++ 11。我目前無法檢查。仍然感謝 – maythe4thbewithu