0

我正在使用 C++,需要生成一个矩阵,其元素是幂级数的单项式,在各种坐标下进行评估。例如,假设我的矩阵的每一行都是通过在坐标 (x,y) = (-1,-1) 处评估单项式 1、x、y、x*x、x*y、y*y 生成的,( 0,0), (1,1),则写为:

1 -1 -1 1 -1 1
1 0 0 0 0 0
1 1 1 1 1 1

在实践中,单项式列表和坐标都是可变的。例如,我可能想将单项式列表扩展到更高维度和更高阶,并且坐标可以任意大。

目前,我可以使用字符串生成单项式列表,但我需要以某种方式将字符串转换为可以占用数值的变量。这在 C++ 中可能吗?

4

1 回答 1

0

您可以从函数/lambdas中返回std::array/ :std::vector

std::vector<int> createRow(int x, int y)
{
    return {1, x, y, x * x, x * y, y * y};
}

template <typename RowGenerator>
std::vector<std::vector<int>>
createMatrix(RowGenerator gen, const std::vector<std::pair<int, int>>& input)
{
    std::vector<std::vector<int>> res(input.size());

    std::transform(input.begin(), input.end(), res.begin(), gen);
    return res;
}
于 2021-01-05T10:11:48.990 回答