шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
||||||||||||||||
1 | ||||||||||||||||
Вывод элементов вектора24.10.2011, 09:22. Показов 2185. Ответов 17
Метки нет (Все метки)
почему когда выводим данные вектора пишем так:
почему не так
0
|
24.10.2011, 09:22 | |
Ответы с готовыми решениями:
17
Вывод элементов вектора Вывод элементов вектора Размер вектора и вывод элементов Найти сколько элементов первого вектора совпадают с элементами второго вектора |
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
24.10.2011, 09:28 | 2 |
1
|
4 / 4 / 1
Регистрация: 19.10.2011
Сообщений: 20
|
|
24.10.2011, 09:47 | 4 |
насколько я знаю, begin() указывает на первый элемент в векторе, в то время как end() указывает на то что находится после последнего элемента.
а вообще да, лучше использовать reverse_iterator
0
|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
||||||
24.10.2011, 10:19 [ТС] | 6 | |||||
Bers, всмысле так что ли
0
|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
|
24.10.2011, 10:37 [ТС] | 8 |
Bers, брр, вообще-то нет. Ну я в отладке посмотрел даже...
у меня например 2 элемента в векторе, он 2 и обработает. А по вашей теории 3 должен. Чего не происходит. Сначала происходит видимо p++, а потом уже сравнение
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
24.10.2011, 10:47 | 9 |
Bers, Гон.
0
|
Заблокирован
|
|
24.10.2011, 10:54 | 10 |
прошу прощения. Цикл оборвется, когда p станет равным vecR.end()
Условие продолжения цикла - p должно быть не равно vecR.end() Добавлено через 1 минуту здесь же стартовый p уже указывает на элемент выходящий за пределы диапазона. Что означает "неизвестное поведение" (udefined behavior) for (vector<RecVecR>::iterator p =vecR.end()-1 ; p != vecR.begin();p--) Стартовый p будит указывать на последний элемент
0
|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
||||||
24.10.2011, 10:59 [ТС] | 11 | |||||
reverse_iterator я начал юзать уже. Так по ГОСТУ просто и ладно. Сразу лучше делать буду по правилам.
0
|
Higher
|
|||||||||||
24.10.2011, 12:46 | 13 | ||||||||||
Быдлокод.
Ну это если просто перебрать все элементы в обратном порядке, если нужно применить какой-то алгоритм(в данном случае копирование), то имхо плоский стиль предпочтительнее.
0
|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
||||||
24.10.2011, 16:10 [ТС] | 14 | |||||
diagon,
в данном случае , я как понимаю,
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
24.10.2011, 16:12 | 15 |
ht1515, Зачем копию создавать лишнюю?
0
|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
|
24.10.2011, 18:05 [ТС] | 16 |
про пересобирание вектора через копирование не я говорил
0
|
Каратель
|
|
24.10.2011, 18:12 | 17 |
писать-то можно, но нежелательно
it++ постикремент работает так - копируется текущее значение, текущее значение увеличивается на еденицу, возвращается сделаная копия ++it работает так - увеличивается текущее значение и возвращается ссылка на него
0
|
Higher
|
|
24.10.2011, 18:39 | 18 |
При чем здесь пересобирание?
Просто все элементы из диапазона [vec.rbegin(); vec.rend() ) копируются в ostream_iterator, который выводит их на экран. При постфиксном инкременте должна создаваться дополнительная сущность, что замедляет время работы. По хорошему компилятор это дело должен соптимизировать, но надежнее писать префиксный.
1
|
24.10.2011, 18:39 | |