C++/Set: Różnice pomiędzy wersjami

Z Wikibooks, biblioteki wolnych podręczników.
< C++
Usunięta treść Dodana treść
Lethern (dyskusja | edycje)
wyrzucenie elementów niepowiązanych kontekstem z resztą modułu
47fc19cc (dyskusja | edycje)
mNie podano opisu zmian
Linia 3: Linia 3:
Zbiory są jednym z kontenerów biblioteki STL, których struktura oparta jest na drzewach. Elementy które są w nich przechowywane są posortowane, według pewnego klucza.
Zbiory są jednym z kontenerów biblioteki STL, których struktura oparta jest na drzewach. Elementy które są w nich przechowywane są posortowane, według pewnego klucza.


Zarówno typ wartosci tych elementów jak i typ wartości klucza są takie same.
Zarówno typ wartości tych elementów jak i typ wartości klucza są takie same.
Drzewiasta struktura zapewnia szybkie wyszukiwanie, jednak są z tym związane także pewne mankamenty, mianowicie modyfikacja elementu jest możliwa tylko w taki sposób, że kasujemy stary element, a następnie wstawiamy w to miejsce nowy.
Drzewiasta struktura zapewnia szybkie wyszukiwanie, jednak są z tym związane także pewne mankamenty, mianowicie modyfikacja elementu jest możliwa tylko w taki sposób, że kasujemy stary element, a następnie wstawiamy w to miejsce nowy.


Korzystając z terminologii STL-a zbiory sa tzw. kontenerami asocjacyjnymi (o zmiennej długości, pozwalającymi na operowanie elementami przy użyciu kluczy).
Korzystając z terminologii STL-a zbiory tzw. kontenerami asocjacyjnymi (o zmiennej długości, pozwalającymi na operowanie elementami przy użyciu kluczy).


== Prosty przykład ==
== Prosty przykład ==

Wersja z 21:21, 9 lis 2012

Opis

Zbiory są jednym z kontenerów biblioteki STL, których struktura oparta jest na drzewach. Elementy które są w nich przechowywane są posortowane, według pewnego klucza.

Zarówno typ wartości tych elementów jak i typ wartości klucza są takie same. Drzewiasta struktura zapewnia szybkie wyszukiwanie, jednak są z tym związane także pewne mankamenty, mianowicie modyfikacja elementu jest możliwa tylko w taki sposób, że kasujemy stary element, a następnie wstawiamy w to miejsce nowy.

Korzystając z terminologii STL-a zbiory są tzw. kontenerami asocjacyjnymi (o zmiennej długości, pozwalającymi na operowanie elementami przy użyciu kluczy).

Prosty przykład

Opis użytych tu iteratorów znajduje się w rozdziale Iteratory.

#include <iostream>
#include <string>
#include <set>
using namespace std;
 
int main()
{
   set<string> mapa;
   mapa.insert("Lublin");
   mapa.insert("Lódź");
   mapa.insert("Warszawa");
   mapa.insert("Kraków");
 
   set<string>::iterator result, it;

   // szuka elementu "Warszawa"
   result = mapa.find("Warszawa");
   if( result!=mapa.end() )
      cout << "Znalazłem! " << *result<< '\n';

   // wyświetlenie zawartości
   for( it=mapa.begin(); it!=mapa.end(); ++it)
      cout << *it<< '\n';

   return 0;
}