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 時間も経っていないので、まだ非常に混乱しています。
「Debug Assertion Failed!」というエラーが表示され続けます。..... "式: マップ/セット イテレータはインクリメントできません"
頭の中で上位の値を見つけて配列に格納し、それをマップから削除すると、これを繰り返して上位 5 つのリストを生成できます!?? しかし、トップ値を削除できず、その理由がわかりません。