如何在mongo db上从gmlib存储mpz_t
How to store mpz_t from gmlib on a mongo db?
我正在使用GMP库来管理C 代码中的大数字。我还使用MongoCXX客户端来连接并与MongoDB数据库进行查询。如何将MPZ_T编号存储在Mongo数据库中?甚至更好,我如何将mpz_t转换为mongodb中的numeberlong?
这取决于您打算做什么。MongoDB没有任意的精确编号类型,因此您本质上有两个选择:
如果数字类型适合 64位整数,则可以使用函数
unsigned long valint = mpz_get_ui(val);
// or
long valint = mpz_get_si(val);
将数字转换为64位整数并将其存储在NumberLong
数据类型中。
否则,您始终可以将数字val
转换为
char *valstr = mpz_get_str(NULL, 10, val);
并将其作为文本存储在数据库中。这可能是最安全的解决方案,如果您只想 store 数字并且不需要在数据库级别进行处理。
相关文章:
- 将字符串存储在c++中的稳定内存中
- std::原子加载和存储都需要吗
- C++:将控制台输出存储在宏中更好吗
- 使用QProcess执行命令,并将结果存储在QStringList中
- 访问存储在向量C++中的结构的多态成员
- 如何从存储在std::映射中的std::集中删除元素
- 存储模板类型以强制转换回派生<T>
- 类型总是使用其大小存储在内存中吗
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 使用无符号字符数组有效存储内存
- 如何在cpp.中使用协议缓冲区存储大缓冲区/数组(char/int)
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 带结构的二维矢量:如何存储元素
- 添加存储在向量中的大整数的函数出现问题
- 从文件中读取多个字节,并将它们存储在C++中进行比较
- 在std::vector上存储带有模板的类实例
- 谷歌测试中的期望值存储在哪里
- 为什么C中的通用链表中存储的数据已损坏
- 在c++中获取两个大int,并将它们存储在数组中
- 在reactor中存储eventHandlers的最佳方式是什么