Created
May 6, 2015 01:32
-
-
Save rogerioagjr/584c077fbfccea2a103b to your computer and use it in GitHub Desktop.
Map
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> // cin e cout | |
#include <cstdio> // scanf e printf | |
#include <map> // map | |
#include <string> // string | |
using namespace std; | |
int n; | |
// declaro um map de nome mapa, que tem uma string como chave e guarda uma double em cada posição | |
map<string, double> mapa; | |
int main(){ | |
cin >> n; // leio o valor de n | |
for(int i=1; i<=n; i++){ // e para cada pagamento | |
// declaro e leio o nome e o valor da conta do pagamento | |
string conta; | |
double valor; | |
cin >> conta >> valor; | |
// se tal conta já existir no vetor de contas, apenas adiciono o valor pago na sua posição | |
if(mapa.find(conta)!=mapa.end()) mapa[conta]+=valor; | |
// caso contrário, crio a nova posição conta e salvo nela o valor lido | |
else mapa[conta]=valor; | |
} | |
map<string, double>::iterator it; // declaro um iterador que sabe percorrer um map<string, double> | |
for(it=mapa.begin(); it!=mapa.end(); it++){ // para cada posição de mapa | |
cout << (*it).first; // uso cout para imprimir a string salva na chave | |
printf(" %.2lf\n", (*it).second); // e printf para imprimir a double com precisão de duas casas decimais | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment