說我們有這樣的實例:如何在不知道原始數組大小的情況下增加動態數組(C++)的大小?
string* p;
p = new string[2];
p[0] = "Aa";
p[1] = "Bb";
我明白了什麼:我需要創建一個臨時動態數組存儲有什麼P,刪除P,然後創建一個新的P與行1大小比大temp,然後將temp複製到p中。
我不明白:如何在不知道原始行大小的情況下增加p的大小(在本例中爲2)並仍保留原始數據。我讀過關於做技巧,如(sizeof(array)/ sizeof(dataType)),但由於我有一個動態數組,我不知道如何找到它的大小。 realloc會格式化我的原始數據,再加上它對字符串很有趣。
只是站起來:我不想使用任何形式的鏈表,矢量或那種性質的東西。
使用'std :: vector'。 – 2014-09-21 04:18:07
幫你個忙,用'vector'代替。回答你的問題 - 首先你不知道大小的數組有什麼用處?忘了擴展它 - 如果你不知道它的大小,你將如何使用它?您需要以這種或那種方式跟蹤當前的尺寸。 –
2014-09-21 04:18:18
你不能僅僅使用指針來確定它。您需要在其他位置存儲數組維度,或者使用一些標記條目標記最後一個元素。 – cdhowie 2014-09-21 04:18:31