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

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

Войти
Регистрация
Восстановить пароль
 
ILJON
7 / 7 / 0
Регистрация: 18.10.2008
Сообщений: 49
#1

вопрос по шаблонам - C++

26.10.2009, 16:39. Просмотров 648. Ответов 11
Метки нет (Все метки)

начал разбираться в шаблонах и что то не получается
вот код без шаблона
все работает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<string>
#include<vector>
using namespace std;
 
 
void printVector(vector<int> &vec);
 
int main()
{   int a;
    vector <int> v;
    cout<<"vvedite 4islo";
    cin>>a;
    v.push_back(a);
    cout<<"vvedite 4islo";
    cin>>a;
    v.push_back(a);
    printVector(v); 
    system ("PAUSE");
}
 
void printVector(vector<int> &vec)
{
     vector<int>::const_iterator p1;
     for (p1=vec.begin();p1 != vec.end(); p1++)
     cout<<*p1<<"\n";
}
Попытка сделать шаблон
пишу как показано в учебнике и не выходит может покажете где ошибка

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<string>
#include<vector>
using namespace std;
 
template <class A>
void printVector(vector<A> &vec);
 
int main()
{   int a;
    vector <int> v;
    cout<<"vvedite 4islo";
    cin>>a;
    v.push_back(a);
    cout<<"vvedite 4islo";
    cin>>a;
    v.push_back(a);
    printVector(v); 
    system ("PAUSE");
}
template <class A>
void printVector(vector<A> &vec)
{
     vector<A>::const_iterator p1;
     for (p1=vec.begin();p1 != vec.end(); p1++)
     cout<<*p1<<"\n";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2009, 16:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос вопрос по шаблонам (C++):

Глупый вопрос по шаблонам - C++
Доброе время суток! Я достаточно опытный программист Java, но жизнь, как говорится, заставила переквалифицироваться на C++, причем,...

Поясните по шаблонам - C++
Читаю Солтера, а именно шаблоны. Наткнулся на &quot;некоторые компиляторы требуют что бы определения шаблонных методов помещались в...

программка по шаблонам - C++
Пытаюсь конвертировать контайнер класс в шаблон. Укажите, пожалуйста, на ошибки в программе: Header file &quot;sequence4.h&quot; #ifndef...

Необходим совет по шаблонам - C++
Доброго всем времени суток! Изучаю шаблоны - по ходу дела вопросы на понимание темы: 1. Учитывая прототип для шаблон функции: ...

Передача параметров по значению и по константным ссылкам применительно к шаблонам - C++
Такс... С xvalue разобрались, вопрос следующий. Допустим у меня есть шаблон некой операции. Например template&lt;typename T&gt; ...

Вопрос по массивав, "институтский" вопрос. - C++
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) В документации подобного не...

11
Nick Alte
Эксперт С++
1646 / 1018 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
26.10.2009, 19:21 #2
Перенеси функцию printVector выше функции main.
0
CyBOSSeR
Эксперт С++
2309 / 1682 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.10.2009, 19:24 #3
Какая ошибка именно?
Только что проверил - все работает.
VS 2005.
0
ILJON
7 / 7 / 0
Регистрация: 18.10.2008
Сообщений: 49
26.10.2009, 23:29  [ТС] #4
CyBOSSeR
Слушай ты проверил второй код? или только первый?
я на Dev-C++ делаю
0
CyBOSSeR
Эксперт С++
2309 / 1682 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.10.2009, 23:36 #5
Второй, с шаблонами.
Скопируй сюда ошибки, которые выдает компилятор.
0
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
26.10.2009, 23:55 #6
Микрософтовский компилятор вообще не особо соответствует стандарту С++.
Если для изучения С++ тебе важно соответствие стандарту, то лучше использовать Comeau или Mingw.

оффтоп.
в прочем, повторяется история с жавой.
недавно узнал что микрософт выпустил еще какую-то версию винды, я то думал они разорились в 2007.
0
ILJON
7 / 7 / 0
Регистрация: 18.10.2008
Сообщений: 49
27.10.2009, 00:02  [ТС] #7
CyBOSSeR скрин сделал с ошибками
0
Миниатюры
вопрос по шаблонам  
Rififi
2363 / 1056 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
27.10.2009, 00:13 #8
ILJON,
простой вариант:

template <typename T> void printVector1(const T& vec);

"продвинутый" вариант (более строгий к спецификации контейнера

template <typename T, typename _Ax, template <typename, typename> class V> void printVector2(const V<T, _Ax>& vec);
2
ILJON
7 / 7 / 0
Регистрация: 18.10.2008
Сообщений: 49
27.10.2009, 00:26  [ТС] #9
Rififi
ты вот так имешь ввиду?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<string>
#include<vector>
using namespace std;
 
template <typename A> void printVector(const A & vec);
//void printVector(vector<A> &vec);
 
int main()
{   int a;
    vector <int> v;
    cout<<"vvedite 4islo";
    cin>>a;
    v.push_back(a);
    cout<<"vvedite 4islo";
    cin>>a;
    v.push_back(a);
    printVector(v); 
    system ("PAUSE");
}
template <typename A> void printVector(const A & vec)
//void printVector(vector<A> &vec)
{
     vector<A>::const_iterator p1;
     for (p1=vec.begin();p1 != vec.end(); p1++)
     cout<<*p1<<"\n";
}
если так то всеравно ошибка :[
или может я что то не так понял? :]] уж не серчайте я только учусь :]
0
Rififi
2363 / 1056 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
27.10.2009, 00:34 #10
ILJON,
не знаю что там у тебя за ошибка (лень вникать), но строка 24 неправильная
надо так: typename A::const_iterator p1;

Добавлено через 53 секунды
да и вместо p1++ лучше ++p1
1
ILJON
7 / 7 / 0
Регистрация: 18.10.2008
Сообщений: 49
27.10.2009, 00:42  [ТС] #11
спасиб заработало :]]]
а есть ли принципиальная разница между p++ и ++p ?
0
Rififi
2363 / 1056 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
27.10.2009, 00:58 #12
ILJON,
а есть ли принципиальная разница между p++ и ++p ?
естессно, есть..
в первом случае будет возвращено текущее состояние объекта, и только потом произойдет операция инкрементирования, во втором - инкремент произойдет сразу, значение до инкремента получить невозможно.
кроме того, втоой случай для сложных объектов потенциально быстрее работает, ибо не надо сохранять текущее состояние во временной переменной.

для подробностей можно погооглить "C++ пред пост инкремент"
0
27.10.2009, 00:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2009, 00:58
Привет! Вот еще темы с ответами:

Вопрос по шаблонам - Joomla
Подскажите... можно ли сделать и как? В joomal'e чтоб при нажатии заданной сылки изменялся дизайн шаблона и переходил на данную ссылку,...

Поиск по шаблонам - PHP
как сделать условие чтобы оно выбирало по шаблонам действие, например у меня решение так $content=&quot;test test2test3 test test...

Печать документа по шаблонам - Delphi
Всем привет! Может я не туда пишу но чет я даже классифицировать тему не могу) пишу на делфи программу которая будет заполнять и печатать...

Литература по шаблонам проектирования - C#
Подскажите, где почитать-поучить-посмотреть про шаблоны проектирования что-то интересненькое. Спасибо!


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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