Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5

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

12.10.2011, 14:57. Показов 793. Ответов 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
то компилится нормально. В чем дело? Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2011, 14:57
Ответы с готовыми решениями:

Как принять параметр-итератор в шаблоне функции?
Добрый день, знатоки! Чтобы набить руку, затеял наследование от класса std::vector. template &lt;typename T&gt; class MyVector :...

Итератор в шаблонном классе
итератор в шаблонном классе?

Дружественные функции в классе-шаблоне
stdafx.h #include &lt;iostream.h&gt; template &lt;typename T&gt; class Iterator; template &lt;typename T&gt; class Set ...

4
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
12.10.2011, 15:07
Вот так попробуй
C++
1
typename m_vector<T>::iterator it=this->begin();
кстати, что за странное условие выхода из цикла
C++
1
this->end();
?
1
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
12.10.2011, 15:15  [ТС]
Спасибо, помогло. А можно ещё в 2х словах почему typename обязателен?

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



C++
1
it < this->end()
а в первом посте не так написанно)
1
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
12.10.2011, 15:58  [ТС]
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2011, 15:58
Помогаю со студенческими работами здесь

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

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

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

Особый итератор словаря. Итератор возвращающий нужные комбинации
Немогу разобраться, как написать итератор. У меня есть словарь, ключи это координаты, а значения это либо ноль, либо единичка (True и...

Особый итератор словаря. Медленный итератор
Не могу разобраться, как написать итератор. У меня есть словарь, ключи это координаты, а значения это либо ноль, либо единичка (True и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru