对于我正在处理的程序,我经常需要从包含数十万个整数的文本文件中读取输入。目前,我正在读取一些值并将它们存储在一个向量中。每当我需要的值不在向量中时,我就会再次从输入文件中读取并清除旧值,以便为我当前正在读取的值腾出空间。
我想避免经常需要从输入文件中读取的情况,我想知道在出现问题之前我可以在向量中存储多少值。max_size() 返回 1073741823,所以我想我可以存储这么多元素,但我想知道该内存在哪里使用,以及拥有这么大的向量是否是个好主意。
当您这样创建向量时:
int main(){
std::vector<int> vec;
vec.push_back(3);
vec.push_back(4);
return 0;
}
该向量现在是否使用堆栈内存?由于您的向量包含 2 个整数,这是否意味着正在使用 8 个字节的堆栈内存?
根据 MSDN 文档:
对于 x86 和 x64 机器,默认堆栈大小为 1 MB。
这似乎并不像很多内存。什么是您想要增加堆栈内存的情况示例?Visual Studio 中是否有任何方法可以准确监控当前正在使用的堆栈和堆内存量?
在这种情况下,我能做些什么来防止从输入文件中不断读取吗?