• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Szukanie n-tego elementu w set, w c++.

VPS Starter Arubacloud
0 głosów
195 wizyt
pytanie zadane 4 grudnia 2020 w C i C++ przez TlenekWodoru Użytkownik (520 p.)
#include <bits/stdc++.h>
using namespace std;
int main()
{ ios_base::sync_with_stdio(0);
    set<int>S={11,22,33,44,55,66,77,88,99};
    cout<<???<<endl; 
    ///Co mam wpisac w miejsce znakow zapytania, by
    ///program wypisał np. piaty element set'a?
    ///Zeby w tym wypadku wypisal 55   
    return 0;
}

 

komentarz 4 grudnia 2020 przez Oscar Nałogowiec (29,340 p.)
Z matematycznego punktu widzenia zbiory nie są uporządkowane. W informatyce to jest kwestia implementacji.

1 odpowiedź

0 głosów
odpowiedź 4 grudnia 2020 przez tangarr Mędrzec (155,140 p.)

Funkcja std::set::begin() zwraca iterator do pierwszego elementu.
Aby usyskać iterator wskazujący na piąty element musisz dodać 4 do iteratora na pierwszy element;

auto iterator_na_5_element = S.begin() + 4;

Wartość wskazywanego elementu otrzymasz dzięki operatorowi wyłuskania

int liczba = *iterator;

 

komentarz 4 grudnia 2020 przez TlenekWodoru Użytkownik (520 p.)
Błąd się wyświetla jak wpisuje "auto iterator_na_5_element = S.begin() + 4;"
komentarz 4 grudnia 2020 przez tangarr Mędrzec (155,140 p.)

Myślałem, że iterator klasy std::set posiada zdefiniowany operator+
W tej sytuacji trzeba inkrementować iterator tyle razy aż przeskoczymy na szukany element

auto iter = S.begin();
for (int i=0; i<4; i++)
    ++iter;

 

komentarz 4 grudnia 2020 przez MetRiko Nałogowiec (37,110 p.)

Można też prościej z wykorzystaniem funkcji std::next z biblioteki standardowej C++.
Należy tylko pamiętać o załączeniu biblioteki <iterator>.
Taki tam bajer ułatwiający życie.

#include <iterator>
//...
auto fifthElement = *std::next(mySet, 4);

Dokumentacja std::nexthttps://en.cppreference.com/w/cpp/iterator/next

Podobne pytania

0 głosów
1 odpowiedź 461 wizyt
pytanie zadane 19 czerwca 2021 w JavaScript przez ShockWave Bywalec (2,350 p.)
0 głosów
1 odpowiedź 896 wizyt
pytanie zadane 21 listopada 2020 w Matematyka, fizyka, logika przez kornelia Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 116 wizyt
pytanie zadane 10 maja 2019 w HTML i CSS przez Rozukee Początkujący (300 p.)

93,025 zapytań

141,990 odpowiedzi

321,292 komentarzy

62,371 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...