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

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

Восстановить пароль Регистрация
 
TaYloR
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 38
09.10.2012, 21:32     Использование вектора #1
Здраствуйте. Написал такую программку:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<vector.h>
#include<iterator.h>
#include<conio.h>
#include<iostream.h>
 
template <typename T>
bool palindrome(const vector &a);
 
int main(){
const int size= 5;
int array1[size] = {1, 2, 3, 2, 1};
int array2[size] = {1, 2, 3, 4, 5};
vector<int> vector1(array1, array1+size);
vector<int> vector2(array2, array2+size);
ostream_iterator output(cout, " ");
 
cout<<"Vector1 contains:\n";
copy(vector1.begin(), vector1.end(), output);
cout<<"\nVector2 contains:\n";
copy(vector1.begin(), vector1.end(), output);
 
cout<<"\nVector1 "<<(palindrome(vector1) ? "is" : "is not")<<" palindrome\n";
cout<<"\nVector2 "<<(palindrome(vector2) ? "is" : "is not")<<" palindrome\n";
 
getch();
return 0;
}
 
template <typename T>
bool palindrome(const vector &a){
        typename vector<T>::const_iterator first = a.begin();;
        typename vector<T>::const_iterator second = a.end()-1;
        while (first!>=second){
                if (*first!=*second)
                        return false;
                first++;
                second--;
                }
        return true;
}
Выдаёт ошибку [C++ Error] Unit1.cpp(7): E2102 Cannot use template 'vector<_Tp,_Alloc>' without specifying specialization parameters.

Подскажите, в чём дело? писал по учебнику
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 21:32     Использование вектора
Посмотрите здесь:

C++ Использование вектора для работы с матрицей
Дан список, элементы которого являются координатами вектора. Найти длину вектора C++
C++ Использование вектора векторов
Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А C++
Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.10.2012, 21:58     Использование вектора #2
Пробуйте:
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
28
29
30
31
32
33
34
35
36
37
template <typename T>
bool palindrome(const T &a);
 
int main()
{
    const int size= 5;
    int array1[size] = {1, 2, 3, 2, 1};
    int array2[size] = {1, 2, 3, 4, 5};
    vector<int> vector1(array1, array1+size);
    vector<int> vector2(array2, array2+size);
    ostream_iterator<int> output(cout, " ");
 
    cout<<"Vector1 contains:\n";
    copy(vector1.begin(), vector1.end(), output);
    cout<<"\nVector2 contains:\n";
    copy(vector2.begin(), vector2.end(), output);
 
    cout<<endl;
    cout<<"\nVector1 "<<(palindrome(vector1) ? "is" : "is not")<<" palindrome\n";
    cout<<"\nVector2 "<<(palindrome(vector2) ? "is" : "is not")<<" palindrome\n";
    cout<<endl;
    system("pause");
    return 0;
}
 
template <typename T>
bool palindrome(const T &a){
    auto first = a.begin();;
    auto second = a.end()-1;
    while (first!=second){
        if (*first!=*second)
            return false;
        first++;
        second--;
    }
    return true;
}
TaYloR
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 38
09.10.2012, 22:22  [ТС]     Использование вектора #3
Выдаёт такое:
[Linker Error] Unresolved external 'bool palindrome<_STL::vector<int, _STL::allocator<int> > >(const _STL::vector<int, _STL::allocator<int> >&)' referenced from E:\C++\DEITEL\22.12\UNIT1.OBJ

Добавлено через 14 минут
проблема решена: нужно было писать
bool palindrome(const vector<T> &a);
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.10.2012, 22:23     Использование вектора #4
Ну не знаю, у меня работает. Вы точно весь мой код подставили? Кстати, у меня инклуды такие только подключены (без расширений h):
C++
1
2
3
#include <iostream>
#include <vector>
#include <iterator>
TaYloR
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 38
09.10.2012, 22:45  [ТС]     Использование вектора #5
Да всё. Но я уже нашёл, что было не так в моём коде. Спасибо
Yandex
Объявления
09.10.2012, 22:45     Использование вектора
Ответ Создать тему
Опции темы

Текущее время: 07:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru