2011-03-03 64 views
0

我已經構建了一個C++類結構, 讓坐在它被稱爲任務結構C++,動態名施工

我想發起一個新的基礎上可能會改變我每次運行的時間索引構建程序,例如

for (i=1; i<=index,++i){ 

Task ai; 
} 

這樣的循環後,我想有一個名爲A1,A2,A3,A4的結構,...一個

如何添加我數到年底這個名字是它的一部分。

+2

我想你想要一個數組。 – Marlon 2011-03-03 01:37:07

+0

+1。可能有一些方法可以像預處理器一樣完成這些任務,但是數組是可行的。 – 0xC0000022L 2011-03-03 01:38:18

回答

0

如前所述,你可以使用一個std::vector<Task>,雖然我可能只使用動態分配的數組:

Task* tasks = new Task[index]; 
task[0] ... 
task[1] ... 

delete[] tasks; 
+2

vector *是一個動態分配的數組,所有權問題從毫無戒心的程序員中抽象出來! – 2011-03-03 01:50:47

+0

這是真的! :) – Marlon 2011-03-03 01:56:25

0

使用std :: vector <任務> ai並將其添加到向量中。這也可以解決索引變化的問題。

+0

std ::向量< Task > * ai =新向量< Task >(); for(i = 0; i push_back(Task struct); } – Raja 2011-03-03 01:42:26

+0

爲什麼在這個世界上你想要動態地分配一個向量? – 2011-03-03 01:46:24

+0

該代碼無效,也不需要動態分配。更不用說反覆推回是無效的,而且事先知道尺寸時毫無意義。試試'std :: vector ai(index);' – 2011-03-03 01:48:55

1

C++沒有反射,所以你不能動態地創建變量名是這樣的。然而,陣列/矢量在這裏很有用:

std::vector<Task> tasks(ai); // a vector of ai x Task objects