Задача 7-ма - Miners, въпрос относно извеждането
Здравейте, имам следния въпрос към последната задача от последното домашно.Работил съм с map за да запазвам имената и съответно стойностите на видовете ресурси, но срещам сериозни затруднения при извеждането на данните, както са в примерите, а имено по ред на input-а.Та, моля за насоки как да сортирам map по реда на input-а и това всъщност въобще възможно ли е или трябва да използвам някаква друга структура от данни.По - долу прилагам кода, който съм писал по задачата.Благодаря предварително! :)
#include <iostream>
#include <map>
using namespace std;
int main(){
map<string, int> resources;
string currResource;
int currNum;
while(cin >> currResource){
if(currResource == "stop")break;
cin >> currNum;
if(resources.find(currResource) != resources.end() && currResource != "stop"){
resources[currResource] += currNum;
}else if(resources.find(currResource) == resources.end() && currResource != "stop"){
resources[currResource] = currNum;
}
}
for(auto i = resources.begin();i != resources.end();i++){
cout << i->first << " -> " << i->second<<endl;
}
return 0;
}
Не се получава, да, сменя реда на изходните данни, но пак не съвпадат с изхода в условието на задачата.
Пробвай с vector<> и в него да запазваш pair<key,value>, по този начин ще можеш да ги принтираш на конзолата в реда в който си ги добавил.