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

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

Войти
Регистрация
Восстановить пароль
 
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
#1

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

02.07.2012, 16:47. Просмотров 752. Ответов 10
Метки нет (Все метки)

можно ли при использование вектора не использовать итератор?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 16:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли при использовании вектора не использовать итератор? (C++):

Можно ли итератор вектора декрементировать? - C++
Добрый день ! Можно ли итератор вектора декрементировать ?

Можно ли использовать итератор для обычного массива? - C++
Можно ли использовать итератор для обычного массива? Если да, то как его объявить?

Ошибка при использовании вектора - C++
Пытаюсь проанализировать текстовый файл и посчитать кол-во каждого символа. Текст на английском. Вот код: class Raspredelenie{ ...

Ошибка при использовании for_each для вектора - C++
Здравствуйте, форумчане,при компиляции возникает ошибка: c:\program files\microsoft visual studio 10.0\vc\include\algorithm(22): error...

Error C2039 при использовании методов доступа к элементам вектора - C++
# include <iostream> # include <string> # include <fstream> # include <vector> using namespace std; class Load ...

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

10
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
02.07.2012, 16:49 #2
можно, указывая индекс элемента
0
neske
1498 / 865 / 84
Регистрация: 26.03.2010
Сообщений: 2,967
02.07.2012, 16:51 #3
да, http://www.cplusplus.com/reference/stl/vector/operator[]/
1
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
02.07.2012, 17:03  [ТС] #4
есть такая проблема есть vector<int> :: itterator x
есть vector<vector<int>> y
как присвоить x указатель на элемент вектора y[2][3] допустим?
0
neske
1498 / 865 / 84
Регистрация: 26.03.2010
Сообщений: 2,967
02.07.2012, 17:14 #5
Van111, в этом случае по-моему лучше указатель использовать, а не итератор
C++
1
int *p = &y[2][3];
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
02.07.2012, 17:19 #6
Van111, Дико не советую использовать индексы. Если нужен будет к примеру list вместо вектора придется переписывать весь код, работающий через индексы.
1
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
02.07.2012, 17:25 #7
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <vector>
 
int main()
{
    std::vector<std::vector<int>> v{{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
    std::vector<int>::iterator it = (v.begin() + 2)->begin() + 3;
    std::cout << *it << std::endl;
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
02.07.2012, 17:31 #8
ТСу вариант igorrr37 не рекомендую по той же причине, хотя уже в меньшей степени, все же тут достаточно использовать std::advance для работы к примеру со списком.
1
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
02.07.2012, 17:34 #9
оказалось можно и так (с контролем индексов)
C++
1
std::vector<int>::iterator it(&v.at(2).at(3));
2
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
03.07.2012, 13:45  [ТС] #10
может я не правильно изложил суть но вот в чём дело. есть просто вектор вектора структуры
и есть вектор с элементам который должен указывать на структуру вектора вектора).
это мне нужно для максимальной скорости.
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
03.07.2012, 14:03 #11
Van111, итератор практически тот же указатель в векторе так, что скорость там не сильно падает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 14:03
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
03.07.2012, 14:03
Ответ Создать тему
Опции темы

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