c++ 中的别名变量数组
An array of alias variables in c++
我想创建一个包含另一个数组变量的数组,并且变量应该作为别名复制(即不是按值(。
例如
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(由于指针难以管理,我如何获得与向量相同的功能。据我所知,向量不能存储引用。
数组
的概念是内存是顺序的。这意味着每个元素都紧随其后。(例如arr[0]
是第一个元素的地址,这与*arr
相同。如果你需要第二个元素,你将键入arr[1]
这是(*arr)+1
(。如果要创建一个包含其他两个数组元素的数组,则必须创建第三个数组并复制值(z[0] = a[0];
...对于动态分配,您可以使用具有接受整数值的构造函数的向量。 std::vector<int> z = std::vector<int>(a.size() + b.size())
这是在不存储指针的情况下执行此操作的唯一方法。请注意,如果将某些内容从容器 a 复制到容器 b,然后在容器 a 中更改它,则容器 b 中不会更改。
而不是这个代码片段
int *z;
z = new int[N]; //N is integer.
z = &x[0];
你应该写
int **z;
z = new int * [N]; //N is integer.
z[0] = &x[0];
或者,您可以使用类模板std::vector<int *>
而不是数组。
相关文章:
- 将数组的地址分配给变量并删除
- 试图让变量检查数组中的某些内容
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 在C++中将变量 wstring 分配给 Char 数组
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- c++ 中的别名变量数组
- 使用类的其他成员变量定义类的成员变量数组
- 可视化 如何在C++中使用复杂变量数组
- 如何 for 循环类变量数组
- 按变量数组中的列将一组整数从文本文件读入
- 运行时C++中的变量数组维度
- C++变量数组
- 将变量(数组类型)从函数传递到"main"范围类型:标准::tr1::match_results<标准::字符串::const_iterator>
- 在堆栈上使用大变量/数组的缺点
- 如何在继承类中创建父类变量数组作为私有成员
- 如何创建一个类变量数组
- 需要以编程方式初始化类变量数组,我怎么做最好
- 直接使用变量(数组中的数据返回相同)或与指针一起使用
- 如何用模板类型初始化成员变量数组