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

не работает шаблонный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хэш функции http://www.cyberforum.ru/cpp-beginners/thread56051.html
Задание: Написать программу которая реализует хэш-функцию за 3 последними цифрами, идентификационного номера. Реализовать добавления и поиск данных, предусмотреть квадратичный пересмотр для решения коллизии. Собственно задание. А теперь вопросы. Что такое хэш функции и для чего они в С++? Как, хоть примерно такое сотворить?
C++ c++ лабораторная 1 Найти самое близкое целое число до настоясчго , которое вводится пользователем с клавиатуры. 2 Пользователь вводит любые целые числа с клавиатуры, заканчивая введение числом 100. Вывести на экран информацию про подсчет в данном наборе как целых чисел, так и десятовой запятой. 3 Напишите программу, которая подсчитывает пробелы, символы табуляции и нового рядка в входной последовальности... http://www.cyberforum.ru/cpp-beginners/thread56040.html
Найти произведение элементов последней строки массива C++
решите кто может задачку! 1) Найти произведение элементов последней строки массива размером 5х4, состоящей из элементов целого типа. ЗАРАНЕЕ СПАСИБО!
Программа на C++ (Сумма кубов) C++
Здравствуйте уважаемые программисты. Подскажите как решать задачу. Условие таково: Найти наименьшее натуральное n, которое можно представить двумя различными способами в виде суммы кубов двух натуральных чисел x^3+y^3 (x>=y) P.S. ^3 - куб >= - больше или равно
C++ 2шт. на матрицу(matrix27,5) http://www.cyberforum.ru/cpp-beginners/thread56025.html
Очень прошу , помогите ПЛЗ :wall: :help: :help: Задачи надо написать на С 2 задачи : Первая - Дана матрица размера M x N . Найти максимальный среди минимальных элементов ее строк Вторая - Даны целые положительные числа M, N, число D и набор из M чисел. Сформировать матрицу размера M x N , у которой первый столбец совпадает с исходным набором чисел, а элементы каждого следующего...
C++ Вывести номер строки матрицы с самой длинной последовательностью одинаковых элементов Пожалуста, кто знает решите пожалуста задачку: Дана квадратная матрица m*m, написать программу которая выводит номер той строки в матрице где есть самая длинная последовательность из одинаковых елементов. Например если есть матрица :3 5 8 2 7 9 ... подробнее

Показать сообщение отдельно
SerЁga
32 / 32 / 4
Регистрация: 18.08.2009
Сообщений: 93

не работает шаблонный список - C++

12.10.2009, 22:55. Просмотров 438. Ответов 1
Метки (Все метки)

Создаю список

При компиляции выдает ошибки
1>Linking...
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Spisok<int>::~Spisok<int>(void)" (??1?$Spisok@H@@QAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Spisok<int>::Spisok<int>(void)" (??0?$Spisok@H@@QAE@XZ) referenced in function _main
1> fatal error LNK1120: 2 unresolved externals
Срочно нужен help
//SpisokNode.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef _SPISOKNODE_H
#define _SPISOKNODE_H
template <class NODETYPE>
class SpisokNode
{
    
public:
    SpisokNode();
    SpisokNode(const NODETYPE &);
    NODETYPE GetNodeData() const {return conteyner;}    
private:
    SpisokNode *Next;
    NODETYPE conteyner;
};
#endif _SPISOKNODE_H
//SpisokNode.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<iostream>
using namespace std;
#include<stdlib.h>
#include "SpisokNode.h"
#include <string.h>
template<class NODETYPE>
SpisokNode<NODETYPE>::SpisokNode(const NODETYPE & data)
{
  conteyner=data;
  Next=NULL;
}
template<class NODETYPE>
SpisokNode<NODETYPE>::SpisokNode()
{
    Next=NULL;
}
//Spisock.h
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
#ifndef _SPISOCK_H
#define _SPISOCK_H
#include "SpisokNode.h"
template <class NODETYPE>
class Spisok
{
     friend class SpisokNode<NODETYPE>;
public:
    Spisok();
    ~Spisok();
    void WriteFromFront(NODETYPE &);
    bool ReadFromPosition(int);
    bool DeleteFromPosition(int);
    int IsEmpty() const; 
    void WriteFromEnd(const NODETYPE &);
    void print() const;
    
private:
    SpisokNode<NODETYPE> *Head;
    SpisokNode<NODETYPE> *End;
    SpisokNode<NODETYPE>* GetNewPtr(const NODETYPE &);
    
};
 
#endif _SPISOCK_H
//Spisock.cpp
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
#include<stdlib.h>
#include "Spisock.h"
#include <assert.h>
#include <string.h>
#include<windows.h>
 
template<class NODETYPE>
Spisok <NODETYPE>::Spisok()
{
    Head=NULL;
    End=NULL;
            
}
template< class NODETYPE>
SpisokNode<NODETYPE>* Spisok<NODETYPE>::GetNewPtr(const NODETYPE &Ptr)
{
    SpisokNode<NODETYPE> *Ptr=new SpisokNode<NODETYPE>(Ptr);
    assert(Ptr!=0);
    return Ptr;
}
template< class NODETYPE>
void Spisok<NODETYPE>::WriteFromFront( NODETYPE  & data)
{
    SpisokNode<NODETYPE> *NewPtr=GetNewPtr(data);
    if(IsEmpty())
    {
        Head=End=NewPtr;
    }
    else 
    {
        NewPtr->Next=Head;
        Head=NewPtr;
    }
}
template<class NODETYPE>
Spisok<NODETYPE>::~Spisok()
{
     if(!IsEmpty())
     {
         cout<<"Удаление узлов"<<endl;
        SpisokNode<NODETYPE> *curptr=Head,*tempPtr;
        while(curptr)
        {
            tempPtr=curptr;
            curptr=curptr->Next;
            delete tempPtr;
        }
     }
}
 
template<class NODETYPE>
void Spisok<NODETYPE>::WriteFromEnd(const NODETYPE & data)
{
    SpisokNode<NODETYPE> *NewPtr=GetNewPtr(data);
    if(!IsEmpty())  Head=End=NewPtr;
    else 
    {
         End->Next=NewPtr;
         End=NewPtr;
    }
 
    
}
template<class NODETYPE>
bool Spisok<NODETYPE>::DeleteFromPosition(int pos)
{
    int temp=0,temp1=0;
    SpisokNode<NODETYPE> *NewPtr=Head;
    SpisokNode<NODETYPE> *TempPtr=Head;
    SpisokNode<NODETYPE> *TempPtr1=Head;
    SpisokNode<NODETYPE> *TempPtr2=Head;
    if(IsEmpty()) return false;
    else
    {
        while(NewPtr) {temp++;NewPtr=NewPtr->Next;}
        if(temp<pos) {cout<<"Удаление невозможно"<<endl;return false;}
        while(temp1!=pos)  {TempPtr=TempPtr->Next;temp1++;}
        if(pos==0) {Head=TempPtr->Next;delete TempPtr;TempPtr=Head;return true;}
        if(TempPtr==End) 
        {
            while(TempPtr1->Next!=End) TempPtr1=TempPtr1->Next;
            TempPtr1=End;
            delete TempPtr;
            return true;
        }
        while(TempPtr2->Next!=TempPtr) TempPtr2=TempPtr2->Next;
            TempPtr2->Next=TempPtr->Next;
            delete TempPtr;
            return true;
         
    }
}
template<class NODETYPE>
bool Spisok<NODETYPE>::ReadFromPosition(int pos)
{
    int temp=0,temp1=0;
    SpisokNode<NODETYPE> *NewPtr=Head;
    SpisokNode<NODETYPE> *TempPtr=Head;
    if(IsEmpty()) return false;
    while(NewPtr) {temp++;NewPtr=NewPtr->Next;}
    if(pos>temp) return false;
}
template<class NODETYPE>
int Spisok<NODETYPE>::IsEmpty() const
{
    if(Head=NULL)
        return 0;
    else return 1;
}
 
template<class NODETYPE>
void Spisok<NODETYPE>::print() const
{
    SpisokNode<NODETYPE> *TempPtr=Head;
    while(!TempPtr)
    {
        cout<<"1  "<<TempPtr->conteyner<<endl;
    }
}
//main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
#include<stdlib.h>
#include "Spisock.h"
#include "SpisokNode.h"
#include <assert.h>
#include <string.h>
#include<windows.h>
 
int main()
{
    Spisok<int> New;        
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru