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

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

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

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

09.10.2012, 21:32. Просмотров 367. Ответов 4
Метки нет (Все метки)

Здраствуйте. Написал такую программку:
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++
Заданы три вектора a(n), b(m), c(k). Вывести наименование вектора, в котором максимальна сумма четных элементов, стоящих на нечетных местах C++
C++ Использование вектора векторов
STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора C++
Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора C++
Если возможно, упорядочить булевы вектора, или вывести сообщение "Вектора несравнимы" C++
C++ Безопасное использование вектора в двух потоках
C++ Изменение вектора. Наибольший элемент вектора
C++ Вектора. Их инициализация и использование в ветвлениях
Ошибка с итераторами для целочисленного вектора и вектора структуры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1425 / 762 / 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
1425 / 762 / 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     Использование вектора
Ответ Создать тему
Опции темы

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