【问题标题】:Using vectors with GMP在 GMP 中使用向量
【发布时间】:2014-03-24 22:27:47
【问题描述】:

我正在尝试将向量与 GMP 结合使用。但是当我编译这样的东西时,我得到“[...]\bits\vector.tcc [Error] 数组必须用大括号括起来的初始化程序进行初始化”。任何具有动态大小的数据结构都可以工作 - 双端队列是最好的,但是当我尝试这样做时,我会弹出更多错误。如何让这个停止失败?

#include <vector>
#include <gmp.h>

int main(){
mpz_t test;
mpz_init(test);
std::vector<mpz_t> a_vector;
a_vector.push_back(test);
return 0;
}

【问题讨论】:

    标签: c++ vector gmp


    【解决方案1】:

    由于 GMP 编号不能直接分配(换句话说,您不能这样做 mpz_t test = 0;' ormpz_t test1l; test1 = test;`,我不相信它们可以用于标准 C++ 容器类型。

    如果你想这样做,你可能想使用 C++ 接口来代替 GMP: https://gmplib.org/manual/C_002b_002b-Interface-General.html

    【讨论】:

    • 或者,如果 OP 想要远离 GMP C++ 包装器,那么 boost::multiprecision 可能是一个很好的通用替代方案。
    猜你喜欢
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2017-07-25
    • 2021-10-28
    相关资源
    最近更新 更多