Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Narek514
1

Class List<T>

05.05.2011, 08:46. Просмотров 1094. Ответов 1
Метки нет (Все метки)

Как создать функцию удаления элемента списка этим объявлением(obyavleniyem)
void list<T>::del(el*)

 Комментарий модератора 
Пишите на русском языке кирилицей!
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2011, 08:46
Ответы с готовыми решениями:

raised exception class EstringListError with message 'List index out of bounds(-1)'. Process stopped. Use Stop or Run to continued
AnsiString str = FileListBox1-&gt;Directory + &quot;\\&quot; + FileListBox1-&gt;Items-&gt;Strings; ...

Ошибка E2333: Class member declared outside its class
Доброго времени суток,подскажите в чём дело?...

Project raison expetion class EClassNotFound with message "Class TMainMenu not found"
Что это может значит? Подскажите пожалуйста

List class
Если кто знает, где можно про этот класс почитать, как с ним работать, дайте линк плз.

1
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
05.05.2011, 11:12 2
Лучший ответ Сообщение было отмечено как решение

Решение

Narek514, Взять и создать.) Руками полагаю.

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
#include <iostream>
 
template<class T>
class List
{
public:
    struct Node
    {
        Node* prev;
        Node* next;
        T elem;
        Node(T elem_ = T()):elem(elem_), prev(0), next(0)
        {
        }
    };
    List():head(0), tail(0)
    {
    }
    void push_back(T elem_)
    {
        Node* tmp = new Node(elem_);
        if(!head)
        {
            head = tmp;
            tail = tmp;
            return;
        }
        tail->next = tmp;
        tmp->prev = tail;
        tail = tmp;
    }
    void push_front(T elem_)
    {
        if(!head)
        {
            push_back(elem_);
            return;
        }
        Node* tmp = new Node(elem_);
        head->prev = tmp;
        tmp->next = head;
        head = tmp;
    }
    void pop_back()
    {
        Node* t = tail;
        tail = tail->prev;
        tail->next = 0;
        delete t;
    }
    void pop_front()
    {
        Node* t = head;
        head = head->next;
        head->prev = 0;
        delete t;
    }
    void erase(Node* to_del)
    {
        if(to_del == head)
            pop_front();
        else if(to_del == tail)
            pop_back();
        else
        {
            to_del->prev->next = to_del->next;
            to_del->next->prev = to_del->prev;
            to_del->next = 0;
            to_del->prev = 0;
            delete to_del;
        }
    }
    Node* getHead() const {return head;}
    Node* getTail() const {return tail;}
private:
    Node* head;
    Node* tail;
};
template<class T>
std::ostream& operator <<(std::ostream& os, const List<T>& lst)
{
    for(typename List<T>::Node* tmp = lst.getHead(); tmp; tmp = tmp->next)
        os << tmp->elem << ' ';
    os << '\n';
    return os;
}
 
int main()
{
    List<int> lst;
    lst.push_back(10);
    lst.push_front(5);
    lst.push_back(20);
    lst.push_front(40);
    lst.push_back(15);
    std::cout << lst << '\n';
    List<int>::Node* tmp = lst.getHead();
    lst.erase(tmp);
    std::cout << lst << '\n';
    tmp = lst.getTail();
    lst.erase(tmp);
    std::cout << lst << '\n';
    tmp = lst.getHead()->next;
    lst.erase(tmp);
    std::cout << lst << '\n';
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2011, 11:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i !=...

class List
class List { private: struct LStruct { LStruct *m_pNext; int info; }; LStruct...

Ошибки: 1) use of class template requires template argument list 2) 'T' : undeclared identifier
Решил подправить свой класс с использованием шаблонов, но столкнулся со следующим косяком. Если я...

'MyQueue' : use of class template requires template argument list
Написал код про шаблоны. Не могу понять почему выводит ошибку во время наследования класса. ошибки...


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

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

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