我正在尝试为稀疏数组构造一个带有N个参数的构造函数。如果参数前有空格,则将其索引移动一个位置。至少我想像是这样
我第一次看到这个,我也不知道如何发布。这是一项任务,因此我无法更改构造函数的输入数据。
SparseArray<float, 3 > array0(1.0f, 2.0f);
SparseArray<double, 10> array1( 4.0, 7.0);
初始化后的数组应该像这样
array0[0] == 1.0f
,array0[1] == 2.0f
。
而array1[1] == 4.0
,array1[3] == 7.0
似乎是空格占据了0
中2
和array1
的位置。
答案 0 :(得分:0)
您要执行的操作是不可能的,因为您对C ++解析器没有任何控制,老实说,对于将使用您的代码的任何人来说,这都是没有意义的。
除非您编写某种预处理程序(不要这样做),否则最好的选择是在需要的地方添加零:
SparseArray<double, 10> array1( 0, 4.0, 0, 7.0);
如果您仍然想使用空格,则可以选择使用字符串作为参数,然后自己解析,提取数字并找到空格:
SparseArray<double, 10> array1(" 4.0, 7.0");
我会选择第一个选项。