@Metoksyfenidyna9: standard nie definiuje tego jak ma wyglądać set, jednak chyba wszędzie zaimplementowany jest jako drzewo czerwono-czarne. Zwłaszcza, że w C++17 do API została dodana metoda wyciągania danych kawałkow drzewa, więc set musi być drzewem. Nie potrafię na tą chwilę tego znaleść, ale standard chyba definiuje złożoność obliczeniową każdej operacji w taki sposób, że nie da się tego zaimplementować inaczej niż jako drzewo
@Metoksyfenidyna9: czego z tego nie rozumiesz? zadawaj bardziej konkretne pytania. pod tym linkiem widzę właśnie opis jak działa i jak wygląda ten kontener
@Metoksyfenidyna9: Zwykły set to drzewo czerwono-czarne, który tak jak w Javie zawiera elementy, które się nie powtarzają oraz w przeciwieństwie do mapy wartość oraz klucz jest taka sama.
@Metoksyfenidyna9: elementy w std::set są posortowane według operatora<, w przypadku std::string jest to porządek leksykograficzny https://pl.wikipedia.org/wiki/Porz%C4%85dek_leksykograficzny . Set przydaję się, gdy nie chcesz duplikatów oraz, gdy nie obchodzi cię porządek w jakim elementy są wkładane. Inne zastosowana to szybkie wyszukanie elementu/sprawdzenie czy istnieje (log N, w zwykłym nieposortowanym wektorze jest to N). Inny ficzer: set posiada metodę count, która mówi ile razy wsadziłeś ten sam element, co może byc przydatne,
Dzisiaj mija 20 rocznica przystąpienia Polski do UE. Unia realnie zmieniła moje życie. Nie wyobrażam sobie Polski poza UE. Zaplusuj, jesli się za mną zgadzasz.
#naukaprogramowania #cpp #glupiepytaniametoksyfenidyny
EDIT: chyba, że to jednak nie ironia
Nie wiem skąd ta kolejność. I do jakich konkretnych przykładów można z tego seta korzystać?
@Metoksyfenidyna9: elementy w std::set są posortowane według operatora<, w przypadku std::string jest to porządek leksykograficzny https://pl.wikipedia.org/wiki/Porz%C4%85dek_leksykograficzny . Set przydaję się, gdy nie chcesz duplikatów oraz, gdy nie obchodzi cię porządek w jakim elementy są wkładane. Inne zastosowana to szybkie wyszukanie elementu/sprawdzenie czy istnieje (log N, w zwykłym nieposortowanym wektorze jest to N). Inny ficzer: set posiada metodę count, która mówi ile razy wsadziłeś ten sam element, co może byc przydatne,
@Saly: objection, w secie count zwraca tylko 1(jak jest) i 0(jak nie ma)
dla takiego licznika używa się std::map z operatorem []++