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

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

Войти
Регистрация
Восстановить пароль
 
rpz
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
#1

итератор в классе-шаблоне - C++

12.10.2011, 14:57. Просмотров 510. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template<class T> class m_vector: public vector<T>
{
public:
T at(int i);
m_vector(){}
~m_vector(){}
};
 
template<class T> T m_vector<T>::at(int index)
{
 
int i=0;
 
for(m_vector<T>::iterator it=this->begin();this->end();++it)
{
if(i==index)
return *it;
++i;
}
}
Не компилится. Ругается на
C++
1
m_vector<T>::iterator it
Пишет expected ; before it

А если, допустим, так
C++
1
m_vector<char>::iterator it
то компилится нормально. В чем дело? Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2011, 14:57     итератор в классе-шаблоне
Посмотрите здесь:

В шаблонном классе, один из параметров которого контейнер, объявить итератор этого контейнера - C++
Собсно #include &lt;windows.h&gt; #include &lt;iterator&gt; #include &lt;vector&gt; using namespace std; template &lt;class T, template...

Как быть, если в шаблоне классе предполагается использование ОДИНАКОВЫХ типов? - C++
Вот код, понятно, демонстрационныый, упрощён донельзя для понятности. #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace...

итератор - C++
Привет. Не получается создать итератор. std::vector&lt;std::list&lt;size_t&gt; &gt; adjacentList; если пишу так ...

Итератор С++ - C++
помогите пожалуйста написать итератор, накапливающий сумму пройденных элементов!!!

Итератор!!!!! - C++
Есть такое задание: Разработать класс «Итератор», который должен содержать конструктор и функции просмотра текущего элемента, перехода к...

Итератор (initializer_list) - C++
template &lt;typename T&gt; MyStack&lt;T&gt;::MyStack (initializer_list&lt;T&gt; l) { first=NULL; initializer_list&lt;T&gt;::iterator it; for...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
12.10.2011, 15:07     итератор в классе-шаблоне #2
Вот так попробуй
C++
1
typename m_vector<T>::iterator it=this->begin();
кстати, что за странное условие выхода из цикла
C++
1
this->end();
?
rpz
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
12.10.2011, 15:15  [ТС]     итератор в классе-шаблоне #3
Спасибо, помогло. А можно ещё в 2х словах почему typename обязателен?

А условие, конечно,
C++
1
it < this->end()
Перепечатывал вручную из виртуальной машины.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
12.10.2011, 15:19     итератор в классе-шаблоне #4
Цитата Сообщение от rpz Посмотреть сообщение
А можно ещё в 2х словах почему typename обязателен?
Потому что при указании имени типа используя оператор "::" в шаблонном классе (ф-ции) компилятор между именем типа и чем еще (например именем переменной) выберет что-то еще. Используя typename мы явно указываем компилятору, что речь идет именно об имени типа.



C++
1
it < this->end()
а в первом посте не так написанно)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 15:58     итератор в классе-шаблоне
Еще ссылки по теме:

Вектор и итератор с++ - C++
//////////////////// /////////// Задание: Элементы вектора D случайным образом перемешаны. Элементы ki вектора K /////////// указывают...

Вектор и итератор - C++
Почему где не смотрел всегда содержимое вектора смотрят через итераторы)) Решил попробывать как всегда стандартным проежженым способом. ...

Итератор: for и амперсанд - C++
В чем разница нового и старого for в переборе коллекций? vector&lt;Point&gt; vec; ... for(auto it=vec.begin(); it!=vec.end();...

/Константный итератор - C++
Нужно создать константный итератор. 1) Какой из вариантов будет правильней (в коде их отличие - у второго модификатор const) Первый...


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

Или воспользуйтесь поиском по форуму:
rpz
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
12.10.2011, 15:58  [ТС]     итератор в классе-шаблоне #5
Спасибо
Yandex
Объявления
12.10.2011, 15:58     итератор в классе-шаблоне
Ответ Создать тему
Опции темы

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