据说 anunordered_map<int,int>比 a 占用更多的空间vector<int>。虽然我完全意识到这一点,但我想知道如何在C++ 中获得 an 的单个实例的大致大小。现在,假设我向其中插入了元素。我认为占用的内存乘以某种常数,但是,我无法在 Internet 上的任何地方找到准确的答案。 这就是我正在做的事情。我想计算使用了多少内存,而无需编写任何代码。有没有办法做到这一点?unordered_mapn = 1000000nu_m
#include<bits/stdc++.h>
using namespace std;
const int N = 1000000;
unordered_map<int,int> u_m ;
int main(){
for(int i = 0;i<N;i++){
u_m[i] = 123+i;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果有差别,我故意把u_m外面的main