string* Foooood::topFiveFoo(){
std::map<std::string, unsigned long> volumes;
typedef std::map<std::string, unsigned long>::iterator it_type;
for(i=0;i<nTransactions;i++){
volumes[tDeque.at(i).fooSymbol] += tDeque.at(i).fooShares;
}
string top;
string result[5];
int check = 0;
for(i=0;i<5;i++){
for(it_type iterator = volumes.begin(); iterator != volumes.end(); iterator++) {
if(iterator->second > check){
top = iterator->first;
check = iterator->second;
}
result[i] = top;
volumes.erase(top);
}
}
return new string[5];
}
我是在不到 12 小时前才了解地图的,所以我仍然很困惑。
我不断收到错误消息:“调试断言失败!” .....“表达式:映射/设置迭代器不可递增”
在我的脑海中,如果我找到最高值,将其存储在数组中,然后将其从地图中删除,我将能够重复此操作并生成前 5 名列表!??但我无法删除最高值,我不知道为什么。