如何不忽略构造函数参数之前的空格?

时间:2019-04-18 08:49:55

标签: c++

我正在尝试为稀疏数组构造一个带有N个参数的构造函数。如果参数前有空格,则将其索引移动一个位置。至少我想像是这样

我第一次看到这个,我也不知道如何发布。这是一项任务,因此我无法更改构造函数的输入数据。

SparseArray<float,  3 > array0(1.0f, 2.0f);
SparseArray<double, 10> array1(      4.0,    7.0);

初始化后的数组应该像这样 array0[0] == 1.0farray0[1] == 2.0f。 而array1[1] == 4.0array1[3] == 7.0似乎是空格占据了02array1的位置。

1 个答案:

答案 0 :(得分:0)

您要执行的操作是不可能的,因为您对C ++解析器没有任何控制,老实说,对于将使用您的代码的任何人来说,这都是没有意义的。

除非您编写某种预处理程序(不要这样做),否则最好的选择是在需要的地方添加零:

SparseArray<double, 10> array1( 0, 4.0, 0, 7.0);

如果您仍然想使用空格,则可以选择使用字符串作为参数,然后自己解析,提取数字并找到空格:

SparseArray<double, 10> array1("   4.0,   7.0");

我会选择第一个选项。