【发布时间】:2017-11-21 17:30:10
【问题描述】:
我想创建一个包含另一个数组的变量的数组,并且这些变量应该被复制为别名(即不是通过值)。
例如
int* x;
int* y;
int* z[4]; // What should I do if length of z is not known initially.
x =new int[2];
y= new int[2];
x[0]=1;
x[1] =2;
y[0]=3;
y[1]=4;
z[0] =&x[0];
z[1] = &x[1];
z[2] =&y[0];
z[3] =&y[1];
这里,数组z 由x 和y 的引用组成。在“z”中所做的更改将在 x 和 y 中看到,反之亦然。
我需要什么:
2) z 现在是指向整数的指针数组。如何将其转换为整数数组?
3) 由于指针难以管理,如何获得与向量相同的功能。据我所知,向量不能存储引用。
【问题讨论】:
-
std::reference_wrapper有帮助吗? -
我不明白你的问题是什么 1)。您已经在运行时分配了
z。 2)z不是整数指针数组。 -
和
std::vector替换原始指针。 -
@user8153630 您可以使用相同的语法 z[0] =&x[0]; z[1] = &x[1];等等。除了您需要分配数组,如 int ** z = new int * [N];
-
@VladfromMoscow,好的,谢谢。
标签: c++ arrays pointers vector reference