Тема: Ітератори
потрібне пояснення для ітератора *а++ та код у якому застосовується цей ітератор
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Ітератори
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
потрібне пояснення для ітератора *а++ та код у якому застосовується цей ітератор
Для пояснень по коду нам знадобиться - несподівано - КОД. А також ваші питання, щоб ми знали, що вам пояснювати. І питання мають бути поставлені так, щоб було зрозуміло, що ви вже щось на цю тему прочитали, бо якщо ви не намагалися читати те, що доступно в мережі (а доступно досить багато), то який сенс вам ще щось писати? От якщо ви прочитали, але не можете чомусь співставити прочитане із кодом, тоді можна буде щось відповідати.
Краще шукайте iнший форум (або гуглiть).
Бо тут навряд буде хтось хто захоче пояснити.
Як вам тут розпишуть що таке iтератор то в мене щелепа впаде.
Видалив офтоп. Ну нащо так робити?
Який офтоп -_-
Ааа... Ну почалося....
Кудах, але я шукав таке i знайшов пор....
koala, зробiть блiн свiй збiрник вiдео урокiв по С++, C#, JS, HTML + CSS... (не подумайте, що це критика або щось таке. Було би прикольно мати збiрку урокiв в яких все дуже детально пояснили).
Бо тi хто створив акаунт заради питання по ДЗ навряд знають англiйську.
я не мав на увазі що означає ітератор я мав на увазі вираз *а++ у бібліотеці ітератора
дізнайтесь спершу що роблять оператори *(окрім множення) та ++ без прив'язки до ітераторів
я не мав на увазі що означає ітератор я мав на увазі вираз *а++ у бібліотеці ітератора
Це перехiд но наступного елементу контейнера (наче).
Якщо a - екземпляр класу iterator стандартної бібліотеки шаблонів (STL), то вираз *a++ - це "переміщення" ітератора на наступний елемент (a++) і "розадресація" ітератора (*a). Саме в такій послідовності, бо оператор ++ має вищий пріоритет ніж оператор *.
Тут грано описано все, що потрібно знати про ітератори. Навіть якщо не знаєте англійської мови, то перегляньте код і таблиці.
тоді навіщо його додали до цієї таблиці http://www.cplusplus.com/reference/iterator/?
teri, ітератори бувають різних типів, в таблиці роз'яснюється які властивості має кожен із типів.
В C та C++ є два способи ітерувати крізь масив: індексами
int arr[max];
...
for(size_t i=0;i<max;++i) {
printf("%d",arr[i]);
}
та вказівниками
for(int *i=std::begin(arr);i<std::end(arr);++i) {
printf("%d",*i);
}
Другий спосіб має певні переваги, зокрема вказівник i містить інформацію і про поточний стан ітерації, і про поточний об'єкт в масиві (через оператор *). Це, при певному рівні програміста, покращує читаність і зменшує ймовірність помилки всередині циклу (в першому випадку доводиться вказувати дві змінні - arr та i, а в другому - тільки i).
Але масиви - це не єдині колекції в C++. Для set-ів, map-ів і т.д. теж хочеться мати засіб для ітерування, і бажано, уніформний з масивами, щоб код для ітерування можна було застосовувати для різних колекцій з мінімальними змінами. Номери для них дуже незручні (обчислення, який елемент в set-і 8-й, потребує окремого циклу), а у вказівників не працює оператор ++ - від простого збільшення вказівника на елемент list-а ми потрапимо на казна-що, а не на наступний елемент. Тому створені окремі об'єкти - ітератори, які, як і вказівники, містять інформацію як про поточний стан, так і про поточний об'єкт. І оператори ++ та * для них працюють схоже на те, як вони працюють із вказівниками: * повертає поточний об'єкт (посиланням), а ++ переходить на наступний об'єкт ітерації. Відповідно, якщо *a++ для вказівника означає "збільшити вказівник на розмір даних та повернути дані, на які він вказував до збільшення", то цей вираз для ітератора означає "перейти на наступний об'єкт ітерації і повернути посилання на той, який був до переходу".
А в табличці цей вираз робить рівно те, що написано в заголовку: ілюструє коректний вираз для ітератора.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися