我正在尝试解决内存使用限制为0.75 mb的问题
我无法制作大小为100 000的数组,因为它不在0.75 mb之内
我的程序如下:
#include <iostream>
#include <String>
using namespace std;
void main() {
char temp;
int temp1, num, k, z, val__=0;
cin >> num;
int* value = new int[94000];
short* place = new short[94000];
for (int i = 0; i< num; i++) {
cin >> temp>>temp;
if (temp == 'U') {
cin >> temp >> temp >> place[val__] >> value[val__++];
}
else {
cin >> temp >> temp1;
for (k = val__-1; k >=0; k-- ) {
if (place[k]==temp1) {
cout << value[k]<<endl;
for (z = k; z < val__; z++) {
value[z]=value[z+1];
place[z]=place[z+1];
}
val__--;
k = 0;
}
}
}
}
}
如何全局计算C ++程序的内存使用量,以及如何减少使用的内存量?
在一个数组中,我存储从0到1000的数字。在第二个中,我存储从0到10 ^ 9的数字
最佳答案
您有两个数组,假设sizeof(int)是4个字节,sizeof(short)是2个字节
那么您只需使用600000字节外加一点点用于堆管理。
我认为其他内存占用堆栈或其他类型的内存。
可能您必须减少堆栈?
关于c++ - 减少程序的内存使用量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15465214/