如何添加或刪除數組中的值?在C++中添加或刪除數組中的值
一旦我有了我的int A[3] = {1, 2, 3}
套,是否可以這樣改變它:A[2] = {1, 4}
?
我在C++的手冊,您可以通過運營商new
和delete
,而不是使用STL(vector
,set
,map
)做同樣的事情在閱讀後,要求這一點。
如何添加或刪除數組中的值?在C++中添加或刪除數組中的值
一旦我有了我的int A[3] = {1, 2, 3}
套,是否可以這樣改變它:A[2] = {1, 4}
?
我在C++的手冊,您可以通過運營商new
和delete
,而不是使用STL(vector
,set
,map
)做同樣的事情在閱讀後,要求這一點。
陣列++總是一個固定的大小。您可以在幾個方面裝作:
創建具有所需大小的新數組,你想要的元素從舊的陣列複製到新的數組,然後銷燬舊陣列。假裝新數組與舊數組相同。
int *i = new int[3] { 1, 2, 3};
// 'add' an element
int *tmp = new int[4];
std::copy(i, i+3, tmp);
tmp[3] = 42;
delete [] i;
i = tmp;
std::vector
爲您在內部和更智能的方式做到這一點。
創建一個與你想要的一樣大的數組,並假裝末尾的一些元素不存在; 「改變陣列的大小」包括假裝末尾不同數量的元素不存在。
int i[100];
size_t size = 0; // number of elements that 'exist'
// 'add' an element
i[size++] = 42;
指針,新的和刪除!聽起來就像你在談論動態內存分配。
在這裏它與幾個例子說明很好:用C http://www.cplusplus.com/doc/tutorial/dynamic/
你說的 「添加或刪除」 呢?數組是固定大小的。 – delnan
你不能。一個數組有一組元素。您只能爲它們分配不同的值。 – juanchopanza
是的,事情是我想讓它變得動態! – theskunk