Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452

Можно ли итератор вектора декрементировать?

19.11.2015, 17:27. Показов 1512. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день !

Можно ли итератор вектора декрементировать ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2015, 17:27
Ответы с готовыми решениями:

Можно ли при использовании вектора не использовать итератор?
можно ли при использование вектора не использовать итератор?

Итератор вектора
Только начал изучать STL. Проблема с итератором. conversion from 'std::vector<Alfa>::iterator {aka...

Итератор для вектора
Привет, столкнулся с тем что при использовании stl вектора понадобился итератор перехода на элемент через индекс. не могли бы вы привести...

23
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
19.11.2015, 17:31
Цитата Сообщение от RAFA91 Посмотреть сообщение
Можно ли итератор вектора декрементировать ?
он random-access
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
19.11.2015, 17:42  [ТС]
не могу понять почему вылазит аварийное завершение в строке 14

erase же возвращает итератор на следующий элемент.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int _tmain(int argc, _TCHAR* argv[])
{
    vector<int> v(10);
    cout<<"v.size() = "<<v.size()<<endl;
    for (int i=0;i<v.size();i++) v[i]=i+10;
    vector<int> :: iterator p = v.begin();
    for (;p!=v.end();p++) cout<<*p<<" ";
    cout<<endl;
    
    p = v.begin();
    p = p+5;
    v.erase(p);
    
    cout<<*p<<" ";
    return 0;
}
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
19.11.2015, 17:46
C++
1
p = v.erase(p);
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
20.11.2015, 15:06  [ТС]
а ну да. Спасибо !

подумал что сама erase перекидывает итератор.

хотя было бы не плохо.

Добавлено через 32 минуты
кстати выполнение

C++
1
2
3
v.erase(p);
    p++;
    cout<<*p<<" ";
тоже не дало положительного результата.

Добавлено через 20 часов 45 минут
для чего в векторе метод который return ссылку на последний элемент ?

почему не на первый или пятый ?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.11.2015, 15:09
Цитата Сообщение от RAFA91 Посмотреть сообщение
для чего в векторе метод который return ссылку на последний элемент ?
почему не на первый или пятый ?
Для чего у человека голова сверху, а не снизу или посередине?
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
20.11.2015, 15:44  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Для чего у человека голова сверху, а не снизу или посередине?
я задал вопрос не по анатомии а по вектору.

Добавлено через 34 минуты
как печально что тут
C++
1
v.insert(p,3,500);
нету возврата итератора. опять эти завершения программы лезут.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.11.2015, 15:50
Цитата Сообщение от RAFA91 Посмотреть сообщение
а по вектору.
тогда очевидно - чтобы получить доступ к последнему элементу
Цитата Сообщение от RAFA91 Посмотреть сообщение
нету возврата итератора.
Начиная с С++11 есть.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
20.11.2015, 16:01  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
тогда очевидно - чтобы получить доступ к последнему элементу
да не все норм. я просто не до смотрел всех методов. там мона получить ссылочку на любой элемент.
Цитата Сообщение от Croessmah Посмотреть сообщение
Начиная с С++11 есть.
не все студенты которые будут читать темы знают С++11 и я тоже.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
20.11.2015, 16:14
Цитата Сообщение от RAFA91 Посмотреть сообщение
не все студенты которые будут читать темы знают С++11 и я тоже.
ну да - сейчас же всего 2015 год, зачем знать 11 стандарт. Ближе к 2018 он будет еще более актуальным ...................................
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
20.11.2015, 17:27  [ТС]
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
ну да - сейчас же всего 2015 год, зачем знать 11 стандарт. Ближе к 2018 он будет еще более актуальным
раньше ж как то обходились без этих примочек.

к примеру что это
C++
1
2
for (auto & e : cont)
        std::cout << e << std::endl ;
на цикл не шибко смахивает
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.11.2015, 17:32
Цитата Сообщение от RAFA91 Посмотреть сообщение
к примеру что это
the range-based for statement
Цитата Сообщение от RAFA91 Посмотреть сообщение
на цикл не шибко смахивает
да ладно? В куче других языков присутствует и никто не жалуется.
Цитата Сообщение от RAFA91 Посмотреть сообщение
раньше ж как то обходились без этих примочек.
раньше и без компов обходились, предлагаете вернуться к глиняным табличкам и охоте на мамонтов?
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
20.11.2015, 17:57  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
В куче других языков присутствует и никто не жалуется.
в вижуале 8 работать будет ?

Добавлено через 15 минут
это типо этого ?

C#
1
2
3
4
5
int a[]={1,2,3,4,5};
    for each (int x in a) 
    {
        Console::WriteLine("____________ {0}",x);
    }
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.11.2015, 18:00
RAFA91, да, оно как for-each.
в вижуале 8 работать будет ?
А проверить?
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
20.11.2015, 18:11  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
А проверить?
в проекте CLR работает только for each
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.11.2015, 18:25
в проекте CLR
Каким боком здесь вообще CLR? В асм еще напишите.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
21.11.2015, 14:30  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Каким боком
наверное таким что конструкция for each (int x in a) поддерживается только им.

Добавлено через 25 минут
интересно. почему данная конструкция не вызывает ошибки в компиляции ?

C++
1
2
vector<int> :: reference s = v.front(); 
s = v.back();
все равно же s продолжает указывать на 1-й элемент.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
22.11.2015, 16:26  [ТС]
Добрый день !
Можно ли в список вставлять данные из вектора ? тип инт в обеих контейнерах.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
22.11.2015, 17:00
Цитата Сообщение от RAFA91 Посмотреть сообщение
Можно ли в список вставлять данные из вектора ? тип инт в обеих контейнерах.
Можно.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
22.11.2015, 17:04  [ТС]
Цитата Сообщение от S_el Посмотреть сообщение
Можно.
а смысл ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2015, 17:04
Помогаю со студенческими работами здесь

Почему не запоминается правильно итератор вектора?
Почему, если сделать что-то такое: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main () { vector...

Удаление элементов вектора через итератор
почему так: //работает vector&lt;int&gt;::iterator it=garage.begin(); while(it!=garage.end()) { it=garage.erase(it); } а так...

Изменить значение элемента вектора, на который указывает итератор
Собственно вопрос, возможно ли изменить значение элемента вектора, на который указывает итератор, на значение последнего элемента вектора,...

Как вывести элементы двумерного вектора через итератор?
int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); using namespace std; vector &lt; vector &lt;string&gt;&gt;::iterator...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru