我正在做這個學習/練習與對象數組和對象的指針數組,我很困惑如何獲得動態數組大小。對象數組的對象元素(大小)
我有這樣的:
private:
Client ** arr_client;
public:
static string members [];
然後填充切分數據數組arr_client從下面的靜態字符串數組成員:
static string members[] = {"Jhon Perez 623 22 12 1998"
,"Louis Smith 199 02 12 1988"
,"Daniel Martinez 106 02 01 2010"};
void load(void){
arr_client = new Client * [(sizeof(members)/sizeof(string))*sizeof(Client)];
for (i = 0; i < (sizeof(members)/sizeof(string)); i++){
istringstream stream(members[i],ios_base::in);
stream >> name;
stream >> lastname;
stream >> aux;
id = atoi(aux.c_str());
stream >> date;
date.append(" ");
stream >> aux;
date.append(aux);
date.append(" ");
stream >> aux;
date.append(aux);
arr_client[i] = new Client(name,lastname,id,date);
}
}
現在
,之後的對象數組已滿,我想通過arr_client循環,但我似乎找不到辦法。
我應該使用:
for (int i =0; i < (sizeof(**arr_client)/sizeof(client)); i++)
或採取大小以前CAL和做:
for (int i =0; i < (sizeof(members)/sizeof(string)); i++)
,並用它做什麼?對我來說看起來並沒有那麼有用......但是我又很新了。
幾個問題,我也得到了:
如果我不知道對象的動態assinged數組的大小?就像在這種情況下,即時通訊建立在已知大小的陣列上。
如何計算其中有多少元素,以便我可以循環使用它?
我可以爲arr_client使用std :: iterator嗎?
任何提示,將不勝感激=)
與....是的,我不知道<vector>
和它的優點,但絕不會傷害知道這些情況。
您的程序中擁有的星星越多,您就越會迷惑每個人。再加一個,你將成爲[三星程序員](http://c2.com/cgi/wiki?ThreeStarProgrammer)。請嘗試一些有用的東西! –
@Bo:引用你的鏈接''最近與我合作過的最好的程序員之一是來自人力資源部門的一種轉換,並且符合你描述的模式,所以我們希望那些可能是三星程序員但有良好的口味和判斷力,不想成爲「這個總結了我在實踐這些層級的指導背後的大部分思想。 –
我一直是一個程序員30年,我不能不使用紙和鉛筆做多星代碼。但這並不重要,因爲你很少使用它。如果你想學習C++,我的建議是跳過C的做事方式並專注於C++。寫得最好的C代碼就像C++一樣糟糕。他們是兩種不同的語言。 –