C 动态阵列1尺寸非动态
C++ Dynamic Array 1 dimension non dynamic
我已经在C 中进行编程了一段时间,但是我有一个小问题,我正在尝试找出。
可以在1个维度不是动态的情况下制作2乘2个动态阵列吗?
例如
array [2] [dynamic]?
制作数组[Dynamic] [Dynamic]似乎是一种浪费,而当我只需要使用第一个[0] [Dynamic]和第二个[1] [Dynamic]值时。
我应该使用其他数据结构吗?
谢谢。
数组和指针基本上是等效的,因此您可以使用一系列指针来实现此目标:
int* array[2];
array[0] = new int[x];
array[1] = new int[y];
您仍然可以像多维数组一样访问它:
array[0][x-1] = z;
这在C 11中起作用:
std::array<std::vector<MyClass>,2> arr;
,或者您可以使用c风格的向量
std::vector<MyClass> arr[2];
肯定,但必须在第一个维度中动态。
例如,例如
typedef int two_int_array[2];
two_int_array* a = new two_int_array[n];
for (int i = 0; i < n; ++i)
{
a[i][0] = 1;
a[i][1] = 2;
}
当然,更好的方法是使用向量。由于您不能拥有数组的向量,因此结构的向量可能对您的情况更好。
struct two_int_struct
{
int value[2];
};
std::vector<two_int_struct> a(n);
for (int i = 0; i < n; ++i)
{
a[i].value[0] = 1;
a[i].value[1] = 2;
}
相关文章:
- 基于用户输入的 2D 动态阵列
- 2D 动态阵列被视为特洛伊木马?
- C 动态阵列在类中
- 将动态阵列中的字符与char进行比较
- C++ 清除动态阵列中的内存 - 内存无法清除
- 传递结构C 的动态阵列
- 结构的动态阵列
- 将指针或一系列指针存储在动态阵列中
- C 静态数组,例如动态阵列
- 指针的C 动态阵列
- 存储矢量中的动态阵列
- 动态阵列[C ]的驱动器
- C++动态阵列索引和容量问题
- 分段错误(核心转储)动态阵列
- C 排序字符串的动态阵列 - 排序不起作用
- 将一维动态阵列反转为n维
- 将指针添加到成员对象中的指针动态阵列
- MEMSET FUCTION在我的C 动态阵列初始化中不起作用
- C 填充动态阵列int
- 复制动态阵列并使用过载的操作员删除原件