C++;数组列表还是向量? 我试图用C++编写的代码改写为.< /p>
我在matlab中有一个长单元,包含256个项,其中每个项都是2x2矩阵。在matlab中,我这样写的C++;数组列表还是向量? 我试图用C++编写的代码改写为.< /p>,c++,arrays,list,C++,Arrays,List,我在matlab中有一个长单元,包含256个项,其中每个项都是2x2矩阵。在matlab中,我这样写的 xA = cell(1,256); xA{1}=[0 0;3 1]; xA{2}=[0 0;13 1]; xA{3}=[0 0;3 2]; 等等 在C++中最容易使用的是什么? 我是否可以一次给出一个维数为[256][2][2]的数组,该数组中的所有4个值都是相同的,还是必须为数组中的每个特定值写一行 /Buxley先生你当然可以一次将它们全部初始化,尽管这听起来像是一大堆乏味的打字: fl
xA = cell(1,256);
xA{1}=[0 0;3 1];
xA{2}=[0 0;13 1];
xA{3}=[0 0;3 2];
等等
<>在C++中最容易使用的是什么?
我是否可以一次给出一个维数为[256][2][2]的数组,该数组中的所有4个值都是相同的,还是必须为数组中的每个特定值写一行
/Buxley先生你当然可以一次将它们全部初始化,尽管这听起来像是一大堆乏味的打字:
float terms[256][4] = {
{ 0, 0, 3, 1 },
{ 0, 0, 13, 1 },
{ 0, 0, 3, 2}
...
};
为了简单起见,我将其简化为256个4元素数组。如果您想真正表达预期的嵌套(当然这很好),您需要执行以下操作:
float terms[256][2][2] = {
{ { 0, 0 }, { 3, 1 } },
{ { 0, 0 }, { 13, 1 } },
{ { 0, 0 }, { 3, 2 }}
...
};
这将是256行,每行都有一个由两个浮动“列表”组成的“列表”。每个列表都需要大括号。但是,由于C++支持在这样的事情中抑制括号,所以你也可以这样做:
float terms[256][2][2] = {
{ 0, 0, 3, 1 },
{ 0, 0, 13, 1 },
{ 0, 0, 3, 2}
...
};
事实上,您甚至可以删除每行上的大括号,它们也是可选的。不过,我认为依靠压抑稍微有些阴暗。
如果您想使用比
float
嵌套数组(例如矩阵
类型或其他类型)更高级别的类型,初始化可能会变得很棘手。您当然可以一次将它们全部初始化,尽管这听起来像是很多繁琐的键入:
float terms[256][4] = {
{ 0, 0, 3, 1 },
{ 0, 0, 13, 1 },
{ 0, 0, 3, 2}
...
};
为了简单起见,我将其简化为256个4元素数组。如果您想真正表达预期的嵌套(当然这很好),您需要执行以下操作:
float terms[256][2][2] = {
{ { 0, 0 }, { 3, 1 } },
{ { 0, 0 }, { 13, 1 } },
{ { 0, 0 }, { 3, 2 }}
...
};
这将是256行,每行都有一个由两个浮动“列表”组成的“列表”。每个列表都需要大括号。但是,由于C++支持在这样的事情中抑制括号,所以你也可以这样做:
float terms[256][2][2] = {
{ 0, 0, 3, 1 },
{ 0, 0, 13, 1 },
{ 0, 0, 3, 2}
...
};
事实上,您甚至可以删除每行上的大括号,它们也是可选的。不过,我认为依靠压抑稍微有些阴暗。
如果您想使用比
float
嵌套数组(例如矩阵
类型或其他类型)更高级别的类型,初始化可能会变得很棘手。谢谢,但是我不完全理解后一个示例。在这种情况下,第13项的索引是什么?C和C++中的[2 ] [3 ]或[2 ] [2 ] [1 ]索引是否从0开始。这将是术语[1][1][0]。谢谢,但我不完全理解后一个示例。在这种情况下,第13项的索引是什么?C和C++中的[2 ] [3 ]或[2 ] [2 ] [1 ]索引是否从0开始。这将是条款[1][1][0]。