-2

如何在数组中添加或删除值?

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

我在阅读 C++ 手册后问这个问题,您可以使用运算符newdelete不是使用 STL ( vector, set, map) 来做类似的事情。

4

2 回答 2

7

C++ 中的数组始终是固定大小的。您可以通过以下几种方式假装:

  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;
    
于 2013-08-18T14:28:38.700 回答
0

指针,新建和删除!听起来您在谈论动态内存分配。

这里用几个例子很好地解释了它:http ://www.cplusplus.com/doc/tutorial/dynamic/

于 2013-08-18T14:20:13.570 回答