int n = INT_MAX;
vector<int> v (n*n);
这会导致长度为n ^ 2的向量v还是会发生溢出?
答案 0 :(得分:0)
vector::max_size()
定义的矢量大小有限制,你高于它。
有关尺寸类型的固有限制,请参阅此exising贡献。
答案 1 :(得分:0)
你可以尝试
std::vector<int> v(std::numeric_limits<unsigned long>::max());
或
std::vector<int> v(std::numeric_limits<unsigned long long>::max());
虽然无法保证您的平台可以为int
数组分配内存,但该数组足以容纳那么多项目。