2014-03-24 76 views
2

我正在嘗試使用GMP載體。但是當我編譯這樣的東西時,我會得到「[...] \ bits \ vector.tcc [錯誤]數組必須用括號括起來的初始化符來初始化」。任何具有動態大小的數據結構都可以工作 - 一個deque會是最好的,但是當我嘗試這些時會出現更多的錯誤。我如何讓這次停止失敗?使用GMP載體

#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; 
} 

回答

3

由於GMP號不直接分配(換句話說,不能做mpz_t test = 0;' or mpz_t test1l; TEST1 =測試;`,我不相信它們可以在標準C++容器類型一起使用

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

+0

或者,如果OP希望從GMP C++包裝望而卻步,那麼也許['提振::多倍'](http://www.boost.org/doc/libs/1_55_0/libs/multiprecision/doc/html/boost_multiprecision/intro.html)是一個很好的通用改變當地人。 –