在C++中存储大整数
Storing large integers in C++
我想存储和操作非常大的整数,在不使用预构建库的情况下,最好的方法是什么
根据另一位StackOverflow用户的说法:
std::string对象将被复制到堆栈上,但字符串主体不会——它将在堆上分配。实际的限制将取决于系统和程序内存的使用,在32位系统上可能是1000万到10亿个字符。
我只想了两种简单的方法,这两种方法都要求我自己写课。第一种是使用向量和字符串,第二种是将一个大整数分解为整数数组中的单独块,并将总数相加。
在我的计算机上,字符串的最大大小()是4294967291。
我决定写我自己的课。感谢您的帮助:C++字符矢量添加
编辑:正在处理:https://github.com/Jyang772/Large_Number_Collider
如果取决于这个整数的用法,但为了保持数字的语义并使类编码更容易,我建议使用long
整数的向量。对于代码设计和维护来说,使用std::string
将更加复杂。
你必须重新定义每个运算符,并考虑计算从一个数字块到另一个的传播。
通常的方法是使用int(longs等)的数组(vector等),而不是字符串。
从现有的大整数类开始,即使你不能在作业中逐字逐句地使用一个。
当我们在比赛中遇到类似的问题时,我们使用向量,每个单元格包含一位数字。通过这种方式,您可以存储大量数据。
相关文章:
- 添加存储在向量中的大整数的函数出现问题
- 查找存储在二叉搜索树的所有非叶子中的数据总和?(返回整数的独立递归函数
- 整数数据如何以位为单位存储在内存中?不是右对齐吗?
- 当我尝试将范围值存储为 8 位的固定宽度整数时,它向我显示一些其他值 [ASCII]
- 将大数字(10-12 位数字)存储在无序映射中<字符串,整数>
- GMP-将64位整数存储在mpz_t/mpz_class中,并返回64位整数
- 如何从字符数组C++中提取2个整数并将它们存储在2个变量中(初学者)
- 从文件中读取后,将分号分隔的整数存储到数组中
- 将25个甚至整数存储到一个名为intlist的整数阵列中,然后在屏幕上显示数组,并在屏幕上显示名为fivintegers
- 如何将整数存储在字符阵列中
- 将 10 个整数存储到数组C++中时出现问题
- 将多个整数存储在字符串中
- 将多个整数存储到数组中并打印出来
- 如何将用户输入的 5 个整数存储在数组中并打印出整个数组
- 在 c++ 中将随机生成的整数存储为变量
- 如何将整数存储在字符数组的单个索引中
- C++ 读取文件并将整数存储在向量中.最终占用的驻留内存大约是实际文件大小的 5 倍
- 如何将.txt文件中的特定整数存储在结构数组中
- 将文件中的64*64整数存储到2D数组中
- C++将多个整数存储在一个int变量中