Seuraava esimerkki paljastaa ehkä paremmin STL:n voimaa.
/* STDMAP.CPP */
// Esimerkki std:n map-luokan käytöstä, BC 5.00
// map = dictionary = associative array
#include <iostream.h>
#include <string>
#include <map>
typedef std::map<string,long,less<string> > cPuhMap;
// Jos esiteltäisiin std::multimap, tulisi myös monikert. esiintymiä
// Jos esiteltäisiin greater<string> tulisi laskeva järjestys
void tulosta_hlo(const cPuhMap::value_type &hlo)
{
cout << hlo.first.c_str() << ": " << hlo.second << endl;
}
class cPuhlu {
cPuhMap puh;
public:
void lisaa(string nimi,long numero) { puh[nimi] = numero; }
void poista(string nimi) { puh.erase(nimi); }
void tulosta() {
for_each(puh.begin(),puh.end(),tulosta_hlo);
}
};
#define VIIVA "------------------------------------------------------------\n"
/****************************************************************************/
int main(void)
{
cout << VIIVA;
cPuhlu luettelo;
luettelo.lisaa("Sepe",123); luettelo.lisaa("Aku",1313);
luettelo.lisaa("Roope",98765); luettelo.lisaa("Pelle",5555);
luettelo.lisaa("Sepe",456); // Tämä jää voimaan
luettelo.tulosta(); cout << VIIVA;
luettelo.poista("Pelle");
luettelo.tulosta(); cout << VIIVA;
return 0;
}