删除指针数组中的元素(调整大小)
delete element inside pointers array (resize)
我试图理解指针,在我的代码下面:
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 内的对象或调整数组的大小?
你不能做这两件事。您可以在现有分配范围内移动项目,也可以进行新分配、复制项目并删除旧分配。
要处理数据,您应该使用名为 vector
的容器,它提供了成员函数来删除元素或调整大小。向量在 C++ 中等同于大多数其他语言所称的 "array".
我试图理解指针,在我的代码下面:
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 内的对象或调整数组的大小?
你不能做这两件事。您可以在现有分配范围内移动项目,也可以进行新分配、复制项目并删除旧分配。
要处理数据,您应该使用名为 vector
的容器,它提供了成员函数来删除元素或调整大小。向量在 C++ 中等同于大多数其他语言所称的 "array".