如何在数组中添加或删除值?
我拥有int A[3] = {1, 2, 3}
套后,是否可以通过这种方式进行更改:A[2] = {1, 4}
?
我在阅读C ++手册后,您可以使用运算符new
和delete
执行类似操作,而不是使用STL(vector
,set
,map
)。
答案 0 :(得分:7)
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;
答案 1 :(得分:0)
指针,新品和删除!听起来你在谈论动态内存分配。