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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
igor921
Заблокирован
#1

Итератор, вставка в произвольное место списка - C++

03.06.2013, 19:56. Просмотров 451. Ответов 4
Метки нет (Все метки)

Здравствуйте. Подскажите как вставить значение в произвольное место списка используя итератор.
Эта функция должна выглядеть так:
C++
1
iterator insert(iterator position, const T& value);
Вот кидаю исходник итератора, если нужно кину всю программу
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class iterator
    {
    public:
        _Node *p;
        iterator(void)
        { 
            p=NULL; 
        }
        iterator(list<T> & lst)
        { 
            p=lst._Beg; 
        } 
        ~iterator(void)
        {
            //delete p;
        }
 
        iterator operator++()
        {
            iterator tmp=*this;
            if(p->_Next!=NULL)
                p=p->_Next;
            else
                p=NULL;
            return tmp;
        }
 
        T& operator*(void)
        { 
            return p->_Value; 
        }
 
        int operator!=(iterator pp)
        { 
            return p!=pp.p; 
        }
 
        iterator operator=(iterator pp)
        { 
            p=pp.p; 
            return *this; 
        }
 
        int operator == (iterator pp)
        { 
            return p == pp.p; 
        }
 
    };
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 19:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Итератор, вставка в произвольное место списка (C++):

Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка - C++
не могу понять что должно быть результатом. может подскажете примеры? пожалуйста. Задание: Реализовать двусвязный список (list),...

Перемещение информации в файле в произвольное место - C++
Допустим, есть файл, в котором лежит следующее: а1 c3 d4 b2 Как переставить b2 на второе место без выгрузки информации в...

Разработать класс Итератор, методы которого: переход в начало списка, в конец, к текущему элементу списка, к с - C++
Разработать класс Итератор, методы которого: переход в начало списка, в конец, к текущему элементу списка, к следующему элементу, к...

Сортировка массива и запись данных в файл в произвольное место - C++
Есть ли функция для сортировки массива на C++? Если, например, нету возможности использовать сортировки Пузырька, Вставками и т.п. Как...

Итератор двусвязного списка - C++
Добрый день. Проблема: Есть итератор для двусвязного списка. Реализован метод вывода списка с головы, но не получается реализовать метод...

Итератор списка не распознаётся - C++
class personel : public user { public: personel():user() { post = new char; } ~personel(){} bool...

4
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
03.06.2013, 20:19 #2
Зависит от того, как список устроен; если он циклический двусвязный, то примерно так
C++
1
2
3
4
5
6
7
8
Node * newNode = new Node;
newNode->value = value;
 
newNode->_Previous = position.p->_Previous;
newNode->_Next     = position.p;
 
position.p->_Previous->_Next = newNode;
position.p->_Previous        = newNode;
1
igor921
Заблокирован
03.06.2013, 20:41  [ТС] #3
Ругается на 7 и 8 строку...ошибка с памятью

Добавлено через 4 минуты
Спасибо, разобрался) Не проходил к цикле до нужного адресса
0
gray_fox
03.06.2013, 20:45
  #4

Не по теме:

Не знаю, зачем "проходить в цикле до нужного адреса" при вставке, но ок)

1
igor921
Заблокирован
03.06.2013, 20:50  [ТС] #5
Откровенно говоря сам теперь не пойму зачем, но так заработало) а сроки жмут, поэтому разбираться не буду почему так)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 20:50
Привет! Вот еще темы с ответами:

Итератор для списка - C++
#include &lt;iostream&gt; using namespace std; template &lt;class T&gt; class Link { public: T value; Link *nextLink; Link( T v,...

Создать итератор для списка - C++
:- //ListNode.h #ifndef LISTNODE_H #define LISTNODE_H template &lt;typename NODETYPE&gt; class List; template &lt;typename NODETYPE&gt; ...

Реализовать итератор для самодельного списка - C++
Нужно узнать что из себя представляет итератор. Посмотреть его реализацию. (Желательно попроще, основное) Кто то может объяснить что он...

Итератор для своего контейнерного класса-списка - C++
Здравствуйте. Есть класс List, и мне надо помимо стандартных методов приделать к нему итератор. #include &lt;cstdlib&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
03.06.2013, 20:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru