gpt4 book ai didi

C++ - MPIR:mpz_t 到 std::string?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:57 29 4
gpt4 key购买 nike

我们如何将 mpz_t 转换为 std::string?

mpz_t Var;

// Var = 5000
mpz_init_set_ui( Var, 5000 );

std::string Str = "";
// Convert Var to std::string?

mpz_clear( Var );

最佳答案

您正在寻找 mpz_get_str :

char * tmp = mpz_get_str(NULL,10,Var);
std::string Str = tmp;

// In order to free the memory we need to get the right free function:
void (*freefunc)(void *, size_t);
mp_get_memory_functions (NULL, NULL, &freefunc);

// In order to use free one needs to give both the pointer and the block
// size. For tmp this is strlen(tmp) + 1, see [1].
freefunc(tmp, strlen(tmp) + 1);

但是,您不应该在 C++ 程序中使用 mpz_t。使用 mpz_class相反,因为它提供了 get_str() 方法,该方法实际上返回一个 std::string 而不是指向某些已分配内存的指针。

关于C++ - MPIR:mpz_t 到 std::string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15691477/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com