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

Z Wikibooks, biblioteki wolnych podręczników.
< C++
Usunięta treść Dodana treść
Nie podano opisu zmian
Nie podano opisu zmian
 
Linia 11: Linia 11:
Opis użytych tu iteratorów znajduje się w rozdziale [[C%2B%2B/Iteratory|Iteratory]].
Opis użytych tu iteratorów znajduje się w rozdziale [[C%2B%2B/Iteratory|Iteratory]].


<source lang="cpp">
<syntaxhighlight lang="cpp">
#include <iostream>
#include <iostream>
#include <string>
#include <string>
Linia 38: Linia 38:
return 0;
return 0;
}
}
</syntaxhighlight>
</source>


<noinclude>{{Nawigacja|C++|
<noinclude>{{Nawigacja|C++|

Aktualna wersja na dzień 12:36, 10 lut 2021

Opis[edytuj]

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[edytuj]

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("Łó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;
}