我需要在二进制文件中统计不同整数的频率,我该怎么做?我不希望转换为字符串,因为这会减慢我的程序..我想......
vector<uint32_t> buf(2);
map<uint32_t, uint32_t> mymap;
if(file.is_open())
{
while (file.read(reinterpret_cast<char*>(&buf[0]), sizeof(uint32_t)*numcols))
{
for(size_t i = 0; i < numcols; ++i)
{
mymap[buf[i]]++; // **---> I need help here**
}
}
}
file.close();
如何制作地图的键,以便始终将这些整数计算在一起
是的..连续看多少次整数对,比如多少次(1,2),或者(8,14),或者(7,3)。
1 2
1 2
7 3
8 14
8 14
8 14
1 2 --> 2 times
7 3 --> 1 time
8 14 --> 3 times
numcols == 2正确。
答案 0 :(得分:2)
一个选项可能是map
使用pair<uint32_t, uint32_t>
作为键。这样,您就可以明确地将uint32_t
s对映射到它们出现的频率。