Prev Next Up Title Contents Index

Assosiatiivinen taulukko

Seuraava esimerkki paljastaa ehkä paremmin STL:n voimaa.

cpp\luokat\stdmap.cpp - esimerkki STL:n assosiatiivisesta taulukosta

	/* 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;
	}


Prev Next Up Title Contents Index