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

Jak działa to polecenie? [C++]

Object Storage Arubacloud
0 głosów
726 wizyt
pytanie zadane 7 lutego 2017 w C i C++ przez Marchewka900 Bywalec (2,970 p.)

W 7 odcinku pana Mirosława, przy tworzeniu quizu zostało użyte polecenie:

transform(odp.begin(),odp.end(),odp.begin(), ::tolower);

Pan Mirosław odpowiedział, co robi ta linijka, i mknął dalej przez kod. Nie przejąłem się tym, ale gdy już zacząłem kurs obiektowy (2 odc - quiz metodą obiektową) zadanie domowe z tego odcinka to usprawnienie kodu, by przyjmował duże i małe litery. Więc chciałem być sprytny i zajrzałem do pierwszego quizu i znalazłem to polecenie. Umiem go używać i wiem co robi, ale mógłby ktoś wytłumaczyć co oznaczają poszczególne elementy tej linijki? (odp.begin(),odp.end(),odp.begin()) Dalej, po tych słowach już rozumiem.

P.S. Jak nazywać "polecenie"? Komenda? Polecenie?

1 odpowiedź

0 głosów
odpowiedź 7 lutego 2017 przez koczurekk Gaduła (3,420 p.)
wybrane 7 lutego 2017 przez Marchewka900
 
Najlepsza

To się nazywa szablon funkcji. A działa mniej–więcej tak:

template<class inputIt, class outputIt, class func_t>
void transform(inputIt begin, inputIt end, outputIt out, func_t func) {
	/* iteracja po (begin, end] */
	while(begin != end) {
		*out = func(*begin);

		++begin;
		++out;
	}
}

`.begin()` (preferowane jest `std::begin(obiekt)`) zwraca iterator (coś jak obiektowy wskaźnik) na pierwszy element, `.end()` na pierwszy element za ostatnim (czyli jeśli po inkrementacji begin = end to pora skończyć pracę).

W takim razie składnia jest mniej–więcej taka: transform(początek, koniec, początek_wyjście, ::tolower);

Podobne pytania

0 głosów
1 odpowiedź 456 wizyt
pytanie zadane 27 lutego 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
0 głosów
1 odpowiedź 292 wizyt
pytanie zadane 12 października 2020 w SQL, bazy danych przez RedisSus Nowicjusz (150 p.)
0 głosów
1 odpowiedź 310 wizyt
pytanie zadane 13 lutego 2020 w Nasze projekty przez oracledev Użytkownik (620 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...