• 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++]

VPS Starter Arubacloud
0 głosów
878 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ź 543 wizyt
pytanie zadane 27 lutego 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
0 głosów
1 odpowiedź 391 wizyt
pytanie zadane 12 października 2020 w SQL, bazy danych przez RedisSus Nowicjusz (150 p.)
0 głosów
1 odpowiedź 339 wizyt
pytanie zadane 13 lutego 2020 w Nasze projekty przez oracledev Użytkownik (620 p.)

93,022 zapytań

141,986 odpowiedzi

321,288 komentarzy

62,367 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!

...