根据输入数据创建STL向量 - 标量或复杂类型

时间:2012-08-15 14:36:07

标签: c++ stl vector complextype

我有一种情况,我想将STL向量创建为vector<float>vector<complex<float> >。程序将根据输入确定运行时的数据格式。

如果没有大量的if / else语句,这似乎是不可能的。这就是我想要做的。显然这不起作用b / c typedef是if / else。

的本地
if (INPUT_IS_REAL)
     typedef TYPE float;
else
     typedef TYPE complex<float>; 

vector v1<TYPE>;
vector v2<TYPE>;
 .....

2 个答案:

答案 0 :(得分:3)

可能的解决方案:

if (INPUT_IS_REAL)
    code_path<float>();
else
    code_path<complex<float>>();

答案 1 :(得分:3)

类型在编译时定义。您无法在执行期间更改类型。要处理两种不同的数据类型,您需要两个不同的代码段;当你知道你正在处理什么输入时,你决定使用哪个。