正如标题所示,我尝试使用带有mini-gmp的import networkx as nx
A=nx.complete_graph(5)
B=nx.complete_graph(8)
jaccard=len(set(A.edges())&set(B.edges()))/len(set(A.edges())|set(B.edges()))
打印mpz_t
值时遇到问题。我可以使用std::cout
转换为整数,一切似乎都有效,但这显然完全违背了gmp的目的。
当我使用mpz_get_si
时,似乎打印了std::cout
变量的内存地址。有没有人有使用mini-gmp打印mpz_t
值的解决方案?
答案 0 :(得分:0)
通过此文档,该类似乎会覆盖cout,因此应该支持https://gmplib.org/manual/C_002b_002b-Formatted-Output.html
注意:由于mini-gmp vs gmp
,这可能是功能丢失尽管它确实谨慎:
“但请注意,ostream输出(和istream输入,请参阅C ++格式化输入)是唯一可用于GMP类型的重载,例如使用带有mpz_t的+将产生不可预测的结果。对于具有重载的类,请参阅C ++类接口“。
除此之外如果你得到的内存地址你认为应该有一个值,你可以确保你实际上没有处理mpz_t *并简单地取消引用它,看看你是否得到了类型错误。没有看到任何代码就很难分辨