C++中的数组是否有最大长度?
它是C++限制还是取决于我的机器?它可以调整吗?它取决于数组的类型吗?
我可以以某种方式突破该限制,还是必须寻找更好的信息存储方式?什么应该是最简单的方法?
我要做的是在数组上存储long long int,我在Linux环境中工作.我的问题是:如果我需要存储N> 10位数的N长整数数组,我该怎么办?
我需要这个,因为我正在为学校编写一些加密算法(例如p-Pollard),然后点击这个整数墙和数组表示的长度.
我目前正在openMPI上使用boost :: mpi编写模拟,一切都很好.然而,一旦我扩大系统,因此必须发送更大的std :: vectors我得到错误.
我已将问题减少到以下问题:
#include <boost/mpi.hpp>
#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <boost/serialization/vector.hpp>
#include <iostream>
#include <vector>
namespace mpi = boost::mpi;
int main() {
mpi::environment env;
mpi::communicator world;
std::vector<char> a;
std::vector<char> b;
if (world.rank() == 0) {
for (size_t i = 1; i < 1E10; i *= 2) {
a.resize(i);
std::cout << "a " << a.size();
world.isend(0, 0, a);
world.recv(0, 0, b);
std::cout << "\tB " << b.size() << std::endl;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
打印出来:
a 1 B …Run Code Online (Sandbox Code Playgroud)