2013-08-18 24 views
-2

如何添加或刪除數組中的值?在C++中添加或刪除數組中的值

一旦我有了我的int A[3] = {1, 2, 3}套,是否可以這樣改變它:A[2] = {1, 4}

我在C++的手冊,您可以通過運營商newdelete,而不是使用STL(vectorsetmap)做同樣的事情在閱讀後,要求這一點。

+5

你說的 「添加或刪除」 呢?數組是固定大小的。 – delnan

+0

你不能。一個數組有一組元素。您只能爲它們分配不同的值。 – juanchopanza

+0

是的,事情是我想讓它變得動態! – theskunk

回答

7

陣列++總是一個固定的大小。您可以在幾個方面裝作:

  1. 創建具有所需大小的新數組,你想要的元素從舊的陣列複製到新的數組,然後銷燬舊陣列。假裝新數組與舊數組相同。

    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爲您在內部和更智能的方式做到這一點。

  2. 創建一個與你想要的一樣大的數組,並假裝末尾的一些元素不存在; 「改變陣列的大小」包括假裝末尾不同數量的元素不存在。

    int i[100]; 
    size_t size = 0; // number of elements that 'exist' 
    
    // 'add' an element 
    i[size++] = 42; 
    
相關問題