Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Romich41
15 / 15 / 1
Регистрация: 01.11.2009
Сообщений: 188
#1

Шаблоны.Исправить ошибки. - C++

05.04.2010, 21:07. Просмотров 311. Ответов 0
Метки нет (Все метки)

Вот прога:
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
#include <iostream>
using namespace std;
 
template <class Data> class List{
    class Node{
    public:
        int d;
        Node *next, *prev;
        Node( Data dat = 0){d = dat; next = 0; prev = 0;}
    };
 
    Node *pbeg, *pend;
public:
    List(){pbeg = 0; pend = 0;}
    ~List();
    void add (Data d);
    Node * find(Data i);
    Node * insert(Data key, Data d);
    bool remove(Data key);
    void print();
    void print_back();
};
template <class Data>
   void List<Data>::add(Data d){
    Node *pv = new Node(d);
    if (pbeg == 0)pbeg = pend = pv;
    else{
        pv->prev= pend;
        pend->next= pv;
        pend = pv;}
}
   template <class Data>
Node * List<Data>::find(Data d){
    Node *pv = pbeg;
    while (pv){
        if (pv->d == d)break;
        pv = pv->next;
    }
    return pv;
}
template <class Data>
Node * List<Data>::insert(Data key, Data d){
    if (Node *pkey = find(key)){
        Node *pv = new Node(d);
        pv->next = pkey->next;
        pv->prev = pkey;
        pkey->next = pv;
        if( pkey != pend) (pv->next)->prev = pv;
        else pend = pv;
        return pv;
    }
    return 0;
}
template <class Data>
bool List <Data>::remove(Data key){
    if(Node *pkey = find(key)){
        if (pkey == pbeg){
            pbeg = pbeg->next; pbeg->prev= 0;}
        else if (pkey == pend){
            pend = pend->prev; pend->next = 0;}
        else{
            (pkey->prev)->next = pkey->next;
            (pkey->next)->prev = pkey->prev;}
        delete pkey; eturn true;}
    return false;
}
template <class Data>
void List <Data>::print(){
    Node *pv = pbeg;
    cout << endl << "list: ";
    while (pv){
        cout << pv->d << ' ';
        pv = pv->next;}
    cout << endl;
}
template <class Data>
void List <Data>::print_back(){
    Node *pv = pend;
    cout << endl << " list back: ";
    while (pv){
        cout << pv->d << ' ' ;
        pv = pv->prev;}
    cout << endl;
}
template <class Data>
List<Data>::~List(){
    if (pbeg !=0){
        Nod *pv = pbeg;
        while (pv){
            pv = pv->next; delete pbeg;
            pbeg = pv;}
    }
}
int main(){
    List L;
    for (int i = 1; i<6; i++) L.add(i);
    L.print();
    L.print_back();
    L.insert(2, 200);
    if (!L.remove(5)) cout << "not found";
    L.print();
    L.print_back();
}
помогите исправить ошибки и помогите сделать перегруженную операцию присваивания (“=”) и операции:
- «[]» − доступ к элементу в заданной позиции, например:
Type c;
int i;
list L;
c=L[i];
- «+» − объединить два списка;
- «!=» − проверка на неравенство

Добавлено через 1 час 1 минуту
люди помогите плиз!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2010, 21:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шаблоны.Исправить ошибки. (C++):

Friend и Шаблоны: найти причины возникновения ошибок в коде и исправить эти ошибки - C++
Есть такой минимальный код: #include &lt;string&gt; template&lt;typename CharT&gt; class Format { public: typedef...

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Шаблоны функций. Исправьте ошибки - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; template &lt;class atype&gt; int find(atype summ) { int n,i,j, maxelem,...

Шаблоны функций. Есть ошибки - C++
Помогите исправить ошибки! #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; template &lt;class T&gt; T myfind(T* arr,...

Шаблоны функций как исправить код? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; template &lt;typename X&gt; X **creatarray(int &amp;n, int &amp;m) { cin &gt;&gt;...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2010, 21:07
Привет! Вот еще темы с ответами:

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Исправить ошибки. - C++
Не получается скомпилировать программу. Пожалуйста, укажите ошибки в программе и как их исправить. #include &lt;iostream&gt; #include...

Исправить ошибки - C++
Откомпелируйте и исправьте ошибки в следующих программах: 1 программа: #include&lt;iostream&gt; using namespace std; int main() { ...

Исправить ошибки - C++
вот написал программу для расчета зарплаты, записи и чтения её из файла но появились ошибки их исправить я не могу вот код помогите...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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