在c ++中添加或删除数组中的值

时间:2013-08-18 14:16:09

标签: c++ arrays pointers

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

我拥有int A[3] = {1, 2, 3}套后,是否可以通过这种方式进行更改:A[2] = {1, 4}

我在阅读C ++手册后,您可以使用运算符newdelete执行类似操作,而不是使用STL(vectorsetmap)。

2 个答案:

答案 0 :(得分: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;
    

答案 1 :(得分:0)

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

以下是一些例子:http://www.cplusplus.com/doc/tutorial/dynamic/