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

Дек-шаблон - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка с наследником. Задача по матрице http://www.cyberforum.ru/cpp-beginners/thread1184255.html
Описать тип-объект MATRIX (матрица произвольной размерности M*N) и его методы: ввод матрицы; вывод матрицы; определение минимального элемента среди отрицательных элементов матрицы. Описать тип и методы его потомка MATR (методы: определение наибольшего общего делителя элементов матрицы; определение максимального среди неповторяющихся элементов матрицы ). #include "stdafx.h" //#include...
C++ CUDA C++ не возвращает значение переменных Реализую пример из книжки Сандерс "Технология Cuda в примерах". Этот код #include "windows.h" #include <stdlib.h> #include <math.h> #include <cuda.h> #include "../common/book.h" #include "../common/cpu_anim.h" http://www.cyberforum.ru/cpp-beginners/thread1184252.html
Массивы: вставить элемент перед каждым отрицательным элементом C++
По условию задачи необходимо вставить по одному элементу перед всеми отрицательными элементами. Что не так в коде? #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> int main() { int *pA; int N, i, j; srand((unsigned)time(0));
Имитационная модель процессора C++
Необходимо разработать программную модель процессора и реализовать его имитационную (т.е. компьютерную) модель. Адресность: 1-адресная Битность регистров/стека и операндов команд: 14 битные Команды: X and Y (логическое умножение). Должно быть реализовано: 1) минимум 2 команды (одна из них - внесение значение в регистр); 2) для операндов / регистров представления побитно; 3) фиксация в...
C++ Cgi скрипт на C++ http://www.cyberforum.ru/cpp-beginners/thread1184232.html
Создал простой скрипт на C++ и положил его в cgi-bin не забыл заголовок Content -type , создал на ide microsoft visual провел компиляцию exe файл поменял на cgi вожу в адресе www.localhost/cgi-bin/script.cgi денвер отвечает : """""" Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server...
C++ Ссылка на неразрешённый символ #include "stdafx.h" #include "stdio.h" #include <clocale> #include <iomanip> #include <fstream> #include <string> #include <iostream> using namespace std; class sotrydnik подробнее

Показать сообщение отдельно
krautcat
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 4

Дек-шаблон - C++

22.05.2014, 01:34. Просмотров 1148. Ответов 7
Метки (Все метки)

Доброй ночи.
У меня вопрос.
Я хочу реализовать дек, а потом на его основе сделать шаблон. В деке могут храниться как числа, так и строки. Я попытался реализовать через промежуточный класс. На этапе компиляции выводит ошибку LNK2019.
Где именно ошибка, я не знаю.
Очень хочу услышать дельные советы по реализации дека-шаблона.

Объявление классов
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
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <iostream>
 
#ifndef my_classes
#define my_classes
 
using namespace std;
 
class CInteger
{
public:
    int value;
    CInteger () {value=0;};
    CInteger (int param) { value = param; };
    void Out () {cout << value << endl;}
};
class CString
{
public:
    char *value;
    CString (char *param) {value=new char [strlen(param)+1]; value[0]='\0'; strcpy(value, param);};
    ~CString () {delete[] value;};
    void Out () {cout << value << endl;}
};
 
template <class type>
class CElement
{
public:
    type value;
    type *next;
    type *prev;
    CElement<type> (char *param, type *previous, type *next);
    ~CElement<type> (); 
};
 
template <class deque>
class CDeque
{
private:
    CElement<deque> *first;
    CElement<deque> *last;
public:
    CDeque<deque> (char *param);
    ~CDeque<deque> ();
    void PushBack (char *param);
    void PushFront (char *param);
    void Delete (char *param);
    void Out ();
    char* StringOut ();
};
 
template <class type>
class CDeque_Sort: public CDeque <type>
{
public:
    void MergeSort ();
}
 
#endif my_classes

Описание методов
[СPP]#include "stdafx.h"
#include "my_classes.h"
#include <string.h>

;
template <class type> CElement<type>::CElement (char *param, type *previous, type *next)
{
if (typename == CString)
this->value = CString (param);
if (typename == CInteger)
this->value = CInteger (atoi(param));
this->prev = previous;
this->next = next;
};
template <class type> CElement<type>::~CElement ()
{
delete[] this->prev;
delete[] this->next;
this->value.~type();
};

template <class deque> CDeque<deque>::CDeque (char *param)
{
int counter, co_sp=0, j = 0;
char value [300];
type = deque;
CElement<type> *iterator;
CElement<type> *neu;

this->first = this->last = NULL;

for (counter=0; counter<strlen(param))
if (param[counter]==' ')
co_sp++;
if (param[strlen(param)]!=' ')
co_sp++;

for (counter=0; counter<strlen(param))
{
if (param[counter]==' ')
{
if (this->first = NULL)
{
iterator = new CElement<type> (value, NULL, NULL);
this->first = iterator;
neu = first;
}
else
{
neu = NULL;
neu = new CElement<type> (value, NULL, NULL)
neu->prev = iterator;
iterator->next = neu;
iterator = neu;
}
j = 0;
}
else
{
value[j] = param[counter];
j++;
value[j] = '\0';
}
}
this->last = iterator;
};
template <class deque> void CDeque<deque>::Out ()
{
type = deque;
CElement<type> *iterator = this->first;
while (iterator->next != NULL)
{
iterator->value.Out();
iterator = iterator->next;
}
};
[/CPP]

Основная программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Лабораторная работа 8.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "my_classes.h"
 
 
;int _tmain(int argc, _TCHAR* argv[])
{
    char *temp = new char [300];
    cin.getline(temp, 300);
    CDeque<CString> A (temp);
    A.Out();
    
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru