Skip to content

Instantly share code, notes, and snippets.

@rogerioagjr
Created May 6, 2015 01:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rogerioagjr/584c077fbfccea2a103b to your computer and use it in GitHub Desktop.
Save rogerioagjr/584c077fbfccea2a103b to your computer and use it in GitHub Desktop.
Map
#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