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

Шаблоны. Хеш-функция - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Производные классы http://www.cyberforum.ru/cpp-beginners/thread587646.html
Уважаемые программисты, помогите блондинке с задачкой:scratch: В функции main создать инициализированный объект производного класса, и указатель на тип второго производного класса. Распечатать...
C++ Неправильно считываются данные из wav-файла Всем привет! У меня проблема с получением данных из WAV файла. Почему то функция, которая написана ниже, возвращает размер блока data в 2 раза больше, чем он есть на самом деле. и если воспроизвести... http://www.cyberforum.ru/cpp-beginners/thread587645.html
C++ Курсовая работа
мне необходимо написать курсовую работу на тему "визуализация алгоритма А* с помощью openGL" Программу написал, но никак не могу понять, что нужно написать в цель и задачи в ведении. может кто...
Инициализация массива длинны N C++
Требуется задать массив с Энным количеством членов, n вводится с клавиатуры. При попытке создания массива ... int n; scanf("%d",&n); А ... выдается ошибка "C2057: требуется константное...
C++ Поправить описание класса для объектов-векторов, задаваемых координатами концов в двухмерном пространстве http://www.cyberforum.ru/cpp-beginners/thread587631.html
составить описание класса для объектов-векторов, задаваемых координатами концов в двухмерном пространстве. Обеспечить операции сложения и вычитания, вычисление скалярного произведения двух векторов,...
C++ В программе не работает 1)удаление элемента, последнего в списке-зависает и В программе не работает 1)удаление элемента, последнего в списке-зависает и нужна операция обработки -обмен местами элементов с заданными номерами для этой программы На языке С++ #include "stdio.h"... подробнее

Показать сообщение отдельно
Geniok
1 / 1 / 0
Регистрация: 20.09.2009
Сообщений: 29
27.05.2012, 16:27  [ТС]
Сделал без шаблонов, так как смысла в данном конкретном случае в них нет.
Подскажите пожалуйста насчет освобождения памяти. В каком месте у меня возможна утечка и как лучше всего сделать.

C++ (Qt)
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
class List
{
public:
    List();
    ~List();
 
    void push(char* name, int num);
    void print();
    void erase();
    //void erase(T val, M name);
    void clear();
    void find(char* name, int num);
 
private:
    struct Node
    {
        Node():Num(0), next(0)
        {
            Name = new char;
        }
 
        char* Name;
        int Num;
        Node* next;
    };
 
    Node* head;
    Node* tail;
 
    char* strCopy(char* in, char* to);
};
Реализация:

C++ (Qt)
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
List::List():head(0), tail(0)
{
}
 
List::~List()
{
    delete head;
    delete tail;
}
 
void List::push(char* name, int num)
{
    Node* Temp = new Node;
 
    Temp->Name = strCopy(Temp->Name, name);
    
    Temp->Num = num;
 
    if(head == 0)
    {
        head = Temp;
        tail = Temp;
        return;
    }
    tail->next = Temp;
    tail = Temp;
}
 
 
void List::print()
{
    if(head == 0)
    {
        throw std::string("List is empty!");
    }
 
    for(Node* ptr = head; ptr != 0; ptr = ptr->next)
    {
            std::cout << ptr->Name << ' ' << ptr->Num;
    }
    std::cout << '\n';
}
 
void List::erase()
{
    if(head == 0)
    {
        return;
    }
    Node* delptr = head->next;
    head = head->next;
    delete delptr;
}
 
void List::clear()
{
    while(head != 0)
        erase();
}
 
 
void List::find(char* name, int num)
{
    if(head == 0)
    {
        return;
    }
 
    for(Node* ptr = head; ptr != 0; ptr = ptr->next)
    {
        if(ptr->Name == name)
            std::cout<<"Element "<< name <<" is finded\n";
        return;
    }
    std::cout<<"Element "<< name <<" is not finded\n";
}
 
char* List::strCopy(char* in, char* to)
{
    char* tmp = in;
 
    while(*in++ = *to++)
        ;
    return tmp;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.