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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
25.12.2010, 18:47     Итераторы #1
Как указать не на следующий за последним элемент последовательности, а на последний!
end() - следующий за последним

Добавлено через 4 минуты
Или скажите где почитать, правда, башка уже не варит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2010, 18:47     Итераторы
Посмотрите здесь:

Итераторы и обратные итераторы C++
Итераторы в C++ C++
Итераторы С++ C++
Итераторы C++
итераторы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
25.12.2010, 18:55     Итераторы #2
robober, видимо, у меня тоже башка не варит. Совершенно не врубаюсь, чем речь
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
25.12.2010, 18:55     Итераторы #3
Это?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
 
int main()
{
    std::vector<int> arr;
    std::vector<int>::iterator i;
 
    arr.push_back(1);
    arr.push_back(2);
 
    i = arr.end() - 1;
    std::cout << *i << std::endl;
 
    return 0;
}
http://codepad.org/KQLcM6J3
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
25.12.2010, 19:39  [ТС]     Итераторы #4
Спасибо

Добавлено через 6 минут
Не выходит:

C++
1
2
Iter = level->npc.end() - 1;
if(level->npc.begin() == Iter))
(-) - отсутствует оператор соответсвующий операндам!

Добавлено через 3 минуты
Надо так

C++
1
2
Iter = level->npc.end()--;
if(level->npc.begin() == Iter)
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.12.2010, 22:45     Итераторы #5
C++
1
2
Iter = level->(npc.end() - 1);
if(level->npc.begin() == Iter))
Да можно и так...
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
26.12.2010, 11:49  [ТС]     Итераторы #6
Я починил типов своих, и теперь не могу сообразить, почему у меня из списка (list)
не удаляются первый и поледний элементы (возникает ошибка list iterator not decrementable)!!!
Пришлось создавать на два элемента больше и те два удалять при создании уровня.
Объясните пожалуйста почему так?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.12.2010, 12:14     Итераторы #7
robober, вместо того, чтобы объяснять на пальцах, выложите проблемный кусок кода.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 16:03     Итераторы
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
robober
21 / 21 / 2
Регистрация: 18.01.2010
Сообщений: 41
26.12.2010, 16:03  [ТС]     Итераторы #8
Проблему решил, спасибо за помощь!
Yandex
Объявления
26.12.2010, 16:03     Итераторы
Ответ Создать тему
Опции темы

Текущее время: 12:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru