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

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

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

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

09.10.2012, 21:32. Просмотров 375. Ответов 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++
Нужно хранить символы в координатах, например, на пятой строчке, третьей позиции хранится символ &quot;G&quot;. Но количество координат может...

Использование вектора для работы с матрицей - C++
Здравствуйте! Предположим, что задание состоит в том, чтобы определить в матрице столбцы, содержащие только положительные элементы, и...

Безопасное использование вектора в двух потоках - C++
Это продолжение этой темы , но уже немного другая проблема. Работаю с классом , который создаёт объекты через shared_ptr и заносит их в...

STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора - C++
у меня есть вектор, помогите пожалуйста дописать функцию, которая будет искать элементы большее среднего арифметического вектора и удалять...

Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора - C++
Дано вектор В, состоящий из N действительных чисел. Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые...

Вектора в C++ - C++
Приветствую. Никак не могу разобраться с векторами в C++. Можно коротко осветить как ими пользоваться.

вектора - C++
дана последовательность целых чисел подсчитать количество элементов кратных 9

2 вектора - C++
Всем доброго времени суток. Не могу сдать зачет по программированию из-за этой задачи. Даны 2 вектора. Найти сумму первых 10 эл-ов и из...

Удаление из вектора - C++
#include&lt;iostream&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; using namespace std; void print(vector &lt;int&gt; randomNumbers); int main() ...

Длина вектора - C++
Я написал код для нахождения длины вектора проблема в том что она не выводит мне числа после запятой в чём проблема в задание написано...


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

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

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