Форум программистов, компьютерный форум CyberForum.ru

Иттераторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Китайская теорема об остатках http://www.cyberforum.ru/cpp-beginners/thread88695.html
товарищи есть у кого-то исходный код на Си который реализует данную теорему или может знаете где взять можно?? просто завтра нужно сдать, а как сделать ума не приложу, помогите пожалуйста
C++ Почему все считают, что qsort - НЕ из STL? Странно, что qsort не относят к STL!? Ведь qsort определена в библиотеке cstdlib: C Standard General Utilities Library У кого какие мнения? http://www.cyberforum.ru/cpp-beginners/thread88624.html
Экзамен... НАДО СРОЧНО... C++
задача такая: используя не более 2х переменных, ввести последовательно 5 целых чисел, и вывести те ,которые положительные и трехзначные. если нет таких - сообщить об этом. НАДО ОЧЕНЬ СРОЧНО!!!! ОЧЕНЬ ХЕЛП, и ОЧЕНЬ ПОМОГИТЕ!!!
Как исправить данный код сортировки? C++
Вот только не надо никаких анализов, вопросов, и т. д. Конкретно мой пример. Программа на некоторых компиляторах не компилируется. Причем проблема вовсе не в переполнении стека - присвойте SIZE любое другое значение. Если знаете, как исправить, то, пожалуйста, предложите свое решение. #include <iostream> #include <stdlib.h> using namespace std;
C++ Слабо создать программу, которая много чего делает, а в main только return 0? http://www.cyberforum.ru/cpp-beginners/thread88424.html
Пояснение: Имеется некая функции Function() {} Причем она может делать что угодно. Кто-то знает, как запустить эту функцию НЕ из main? Например: void Function() // Любая ф-ия, которая делает что угодно. (Пример) { cout << "Succeed!\n";
C++ САМАЯ БЫСТРАЯ сортировка! Теоретически и практически доказано, что сортировка OVERPOWER8 - самая быстрая в мире. Характеристика: Требуется памяти: 3*N Количество шагов в любом случае: 3*N Стабильная: ДА Метод: Замена Если не верите, то можете проверить: подробнее

Показать сообщение отдельно
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
28.01.2010, 06:08     Иттераторы
для прохода итератора от конца контейнера к началу делают
iterator TArray::rbegin() и iterator TArray::rend() - типа реверсивные begin() и end(). и вот у них operator++ будет гнать итератор от конца к началу.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class list
private:
        node *endlist;
        node *beginlist;
public:
        list(){}
        struct node{
                 //куски кода...
                 node *next; //следующий узел списка
        };
        class iterator{
                //чето там...
                iterator &operator++(int i)
                {
                           info=info->next;
                           return *this;
                 }
        };
        iterator begin()
        {
                  return iterator(beginlist);
         }
         iterator end()
        {
                  return iterator(endlist);
         }
         
};
//в main()
list L;
for (list::iterator iter=L.begin();iter!=L.end();iter++)
{
       //работа с *iter
}
итератор не может быть больше или меньше begin() (если контейнер в виде дерева, очевидно что больше-меньше не подходит), итератор это просто ссылка на очередной обькет, и у него два оператор != и ++, что бы можно было следущий элемент получить, и за границу не выйти.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru