如何在数组中添加或删除值?
一旦我有了我的一套int A[3] = {1, 2, 3}
,是否可以这样改变它:A[2] = {1, 4}
?
我在阅读 C++ 手册后问这个问题,您可以使用运算符new
而delete
不是使用 STL ( vector
, set
, map
) 来做类似的事情。
C++ 中的数组始终是固定大小的。您可以通过以下几种方式假装:
创建一个具有所需大小的新数组,将您想要的元素从旧数组复制到新数组中,然后销毁旧数组。假设新数组与旧数组相同。
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
在内部以更智能的方式为您执行此操作。
创建一个尽可能大的数组,并假设最后一些元素不存在;'改变数组的大小'包括假装最后不存在不同数量的元素。
int i[100];
size_t size = 0; // number of elements that 'exist'
// 'add' an element
i[size++] = 42;
指针,新建和删除!听起来您在谈论动态内存分配。
这里用几个例子很好地解释了它:http ://www.cplusplus.com/doc/tutorial/dynamic/