Wpis z mikrobloga

@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
  • Odpowiedz
cpp.sh/2ubfbl


@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,
  • Odpowiedz
set posiada metodę count, która mówi ile razy wsadziłeś ten sam element, co może byc przydatne, jak chcesz licznik


@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 []++
  • Odpowiedz