Beispiel: Ressourcenverbrauch

#include <map>
#include <string>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
  map<string,int> a;
  string s; int n, gesamt=0;
  while(cin >> s >> n) {
    a[s] += n; gesamt += n;
  }
  map<string,int>::iterator pos;
  for (pos=a.begin(); pos!=a.end(); ++pos)
    cout << setw(10) << left << pos->first
         << right << setw(8) << pos->second << endl;
  cout << endl << "gesamt:   " << right << setw(8) << gesamt << endl;
  return 0;
}

Eingabe:

Moser       2
Meyer       8
Mueller     3
Moser       1
Meyer       4
Moser       0
Maier       1

Ausgabe:

                         Maier            1
                         Meyer           12
                         Moser            3
                         Mueller          3
                         gesamt:         19

Bsp.: Erfassung von Übungspunkten

#include <map>
#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
  map<string,int> a;
  char c; int n; string s;
  // Teilnehmer aus Datei lesen
  ifstream datei("teilnehmerdatei");
  if (!datei) { cerr << "Datei nicht gefunden." << endl; return 1; }
  while (datei >> s) a[s];   // Teilnehmer mit Anfangspunktestand anlegen
  // Ergebnisse interaktiv einlesen
  cout << "Teilnehmer  Punkte:" << endl;
  while (cin >> s >> n) {
    if (a.find(s) != a.end())
      a[s]+=n;
    else {
      cout << "Neuer Teilnehmer? (j/n) "; cin >> c;
      if (c=='j') a.insert(pair<string,int>(s,n));
    //if (c=='j') a.insert(make_pair(s,n));  // weitere Moeglichkeit
    }
  }
  // Eintraege ausgeben
          :

Teilnehmerdatei:

Meyer
Mueller
Moser
Maier

Eingabe:

                    Moser    3
                    Mueller  4
                    Maurer   2
                    Neuer Teilnehmer? (j/n) j
                    Moser    5

Ausgabe:

                                                   Maier            0
                                                   Maurer           2
                                                   Meyer            0
                                                   Moser            8
                                                   Mueller          4

Bsp.: Worthäufigkeiten bestimmen

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
bool ordnung(pair<string,int> h1, pair<string,int> h2)
{
  return h1.second > h2.second;
}
int main(int argc, char *argv[])
{
  string wort;
  int nwort=0;
  map<string,int> haeufigkeit;
  if (argc!=2) {
    cerr << "usage: " << argv[0] << " file" << endl;
    return 1;
  }
  ifstream ein(argv[1]);
  if (!ein) {
    cerr << "Cannot open " << argv[1] << endl;
    return 1;
  }
  while(ein >> wort) {
    nwort++;
    haeufigkeit[wort]++;
  }
  vector<pair<string,int>> vektor(haeufigkeit.begin(),haeufigkeit.end());
  stable_sort(vektor.begin(),vektor.end(),ordnung);
  for (vector<pair<string,int>>::iterator pos=vektor.begin(); pos!=vektor.end(); ++pos)
    cout << setw(8) << pos->second << "  " << pos-> first << endl;
  cout << endl << "Wortzahl: " << setw(8) << nwort << endl;
  return 0;
}

Eingabe:

int main ( )
{
double a , b , c , s , F ;
cout << "a b c: " ;
cin >> a >> b >> c ;
s = ( a + b + c ) / 2.0 ;
F = sqrt ( s * ( s - a ) * ( s - b ) * ( s - c ) ) ;
cout << "F = " << F << endl ;
return 0 ;
}

Ausgabe:

7  ;
6  (
6  )
6  s
5  b
4  ,
4  <<
4  a
4  c
3  *
3  -
3  =
3  >>
3  F
2  "
2  +
2  cout
1  "F
1  "a
1  /
1  0
1  2.0
1  c:
1  cin
1  double
1  endl
1  int
1  main
1  return
1  sqrt
1  {
1  }
Wortzahl:       82