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

Create STL Vector based on input data - scalar or complex types

本文关键字:向量 标量 类型 复杂 STL 创建 于输入 输入 数据      更新时间:2023-10-16

我遇到一种情况,我想创建一个 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>;
 .....

可能的解决方案:

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

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