我將如何動態添加一個值(推)到一個數組?我可以在AS3中做到這一點,但我無法在C++中找到它的功能。PUSH數組C++?
2
A
回答
8
你不能,如果它是一個靜態定義的數組像這樣:
int array[10];
它的大小是固定的。但是,如果你使用的容器,如std::vector
你會使用:
std::vector::push_back()
6
這是不可能的「推」在一個靜態分配的經典C風格的數組,它不會是一個好主意,實現你的自己的「方法」,以動態地重新分配一個數組,這已經爲你在做STL,您可以使用vector
:
#include <vector>
// ...
std::vector<int> vect;
vect.push_back(1);
vect.size(); // --> 1
vect.push_back(2);
vect.size(); // --> 2
// ...
+0
+1:這個例子對我有幫助,謝謝 – 2010-09-01 09:17:55
1
使用一個std ::向量。您不能推入C風格陣列,例如INT []。
1
假設你並不意味着std::vector<>
,在那裏你會很明顯使用std::vector<>::push_back()
,但實際的數組,那麼你需要知道
- 是否有在數組的末尾至少一個未使用的插槽?
- 是嗎?然後將該值放在第一個未使用的插槽中。 不是嗎?爲至少是前一個大小的新陣列分配內存,以及所需的任意數量的額外插槽,將舊值複製到那裏並添加新值。
以上這些當然意味着您知道上次使用的插槽位於可用內存中的哪個位置。
這是什麼std::vector<>
是你知道的。
相關問題
- 1. jQuery push數組插入逗號
- 2. Javascript多個數組push()差異
- 3. mongodb php $ push不插入數組
- 4. Angular2 patchValue將值push到數組
- 5. 的Javascript全局數組.push在陣列
- 6. 用C/C++編寫的Ajax Push?
- 7. 如何使用Javascript push()將一組值推送到數組?
- 8. 在C++/CLI中#pragma managed(push,on)和#pragma managed(push,off)?
- 9. 的Javascript全局數組與jquery .push在替代函數返回空數組
- 10. 使用數組和循環以及push函數
- 11. 如何避免重複數組push()函數中的字段?
- 12. 如何在JavaScript中使用.push和.unshift創建函數數組
- 13. 組裝x86中的PUSH和POP出DWORD
- 14. 錯誤組裝'push [ebp + 12] [edi] [esi]'
- 15. React.js .push()不是函數
- 16. (JavaScript).push不是函數
- 17. Push/pop當前數據庫
- 18. button push increment number to a text box c#winform
- 19. 在鏈表中實現push/pop(C++)
- 20. C數組vs Obj-C數組
- 21. 將C++數組移植到C#數組
- 22. C#數組組合
- 23. 組織數組c#
- 24. 使用.push方法後typescript數組爲空爲空
- 25. chrome.tabs.query中的push()不會正確添加到數組
- 26. Javascript push Object到全局數組覆蓋以前的值?
- 27. perl - push不追加到數組的末尾
- 28. 從一個數組中將對象push到observableArray
- 29. Jquery .push沒有增加數組的長度
- 30. 將元素push到數組中,然後在for循環中php
+1:使用std :: vector獲取動態大小的數組需求。 – Puppy 2010-09-01 09:07:35
我會說任何數組的使用向量。 – Kugel 2010-09-01 09:40:46