删除指针数组内的元素(调整大小)

时间:2015-07-29 23:53:23

标签: c++ pointers dynamic-arrays

我试图理解指针,在我的代码下面:

int main()
{

    int size = 5; //Size of array
    int position = 2; //Position to delete

    int *pointer = new int[size]; //Pointer declaration

    //Populates array with numbers starting at 1 up to size elements (5 in this case)
    for (int i = 0 ; i < size; i++)
    {
        pointer[i] = i+1;
    }

    //Prints existing elements (numbers 1 to 5 in this case)
    for (int i = 0 ; i < size; i++)
    {
        std::cout << pointer[i] << ", ";
    }


    return 0;
}

我知道如果我delete [] pointers;它会从内存中删除数组,但是如何只删除位置2内的对象或调整数组的大小?

1 个答案:

答案 0 :(得分:2)

你无法做到这两件事。您可以在现有分配中移动项目,然后可以进行新分配,复制项目并删除旧分配。

要处理数据,您应该使用名为vector的容器,该容器提供成员函数以删除元素或调整大小。在大多数其他语言称为“数组”的C ++中,向量是等价的。