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

Возврат моего объекта List из функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать блок схему http://www.cyberforum.ru/cpp-beginners/thread1023767.html
#include <iostream> #include <iomanip> using namespace std; int main() { setlocale(0, "rus"); const int N = 5; // размер матрицы const int M = 5; int i, j;
C++ Написать программу, рекурсивно вычисляющую сумму Найти сумму ряда с точностью \varepsilon, общий член которого равен {a}_{n}=\frac{n!}{(2n)!}. Точность считается достигнутой, если следующий член последовательности меньше заданного \varepsilon. http://www.cyberforum.ru/cpp-beginners/thread1023759.html
Составить программу вычисления выражения и вывода полученного результата на экран C++
Составить программу вычисления выражения и вывода полученного результата на экран. Соответствующие исходные данные ввести с клавиатуры. Использую MS Visual C++
Создать структуру с данными по таблице . C++
Всем привет не буду утаивать сразу скажу мне нужна помощь С++ В общем всё, что я пока умею это вывести массив в консоле рандомно либо из файла либо вручную но у меня близко очень сессия а я косил и мне нужно решить 5 задач за пару дней (они очень простые но т.к я косил пары без посторонней помощи не справляюсь...) 1)Создать структуру с данными по таблице . Добавить и вычислить в структуре...
C++ Как открыть cmd с компилятором? http://www.cyberforum.ru/cpp-beginners/thread1023712.html
Я знаю как компилировать и как открывать компилятор в командной строке. Для этого я открываю файл от MS Visual C++ vcvars32.bat. Но как я могу сделать так, чтобы я открывал командную строку и там уже был открыт компилятор? Просто этот файл находится далеко и мне лень каждый раз это вводить.
C++ Анализ и разбиение символьной строки на слова всем привет) возникла проблема и как с ней справится не пойму( #include <iostream> #include <ctype.h> #include <string.h> bool GetWord(char* theString, char* word, int& wordOffset); int main() { подробнее

Показать сообщение отдельно
Suares
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 106
30.11.2013, 17:41  [ТС]
Если будет время у Вас, можете пересмотреть мой код.

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
#ifndef _NODE_H_
#define _NODE_H_
 
template<class T>
class Node
{
    template<class T> friend class List;
 
public:
    explicit Node(const T& val = T());
    ~Node();
 
    T data() const { return d; }
 
private:
    T d;
 
    Node* next;
    Node* prev;
};
 
template<class T>
Node<T>::Node(const T& val) 
    :d(val), next(0), prev(0) 
{}
 
template<class T>
Node<T>::~Node()
{}
 
#endif
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
#ifndef _LIST_H_
#define _LIST_H_
 
#include "Node.h"
 
template<class T> 
class List
{
public:
    typedef T* iterator;
    typedef const T* const_iterator;
    typedef T value_type;
 
    List();
    ~List();
 
    void push_back(const T& val);
 
    bool isEmpty() const { return first == 0; }
    void print() const;
 
    size_t size() { return last - first; }
 
    List& operator=(const List& l);
 
private:
    Node<T>* first;
    Node<T>* last;
 
    Node<T>* getNewNode(const T& val);
    void remove();
};
 
template<class T>
Node<T>* List<T>::getNewNode(const T& val)
{
    Node<T> *pNode = new Node<T>(val);
 
    return pNode;
}
 
template<class T>
List<T>::List()
    :first(0), last(0)
{}
 
template<class T>
void List<T>::remove()
{
    if(!isEmpty())
    {
        Node<T>* current = last;
        Node<T>* tmp;
        while(current != 0)
        {
            tmp = current;
            current = current->prev;
            delete tmp;
        }
        first = last = 0;
    }
}
 
template<class T>
List<T>::~List()
{
    remove();
}
 
template<class T>
void List<T>::push_back(const T& val)
{
    Node<T> *pNewNode = getNewNode(val);
 
    if(this->isEmpty())
        first = last = pNewNode;
    else
    {
        last->next = pNewNode;
        pNewNode->prev = last;
        pNewNode->next = 0;
        last = pNewNode;
    }
}
 
template<class T>
void List<T>::print() const
{
    if(this->isEmpty())
        std::cerr << "List is empty" << std::endl;
 
    Node<T>* current = first;
    while(current != 0)
    {
        std::cout << current->d << '\n';
        current = current->next;
    }
    std::cout << std::endl;
}
 
template<class T>
List<T>& List<T>::operator=(const List<T>& l)
{
    if(this != &l)
    {
        remove();
        Node<T>* current = l.first;
        while(current != 0)
        {
            push_back(current->d);
            current = current->next;
        }
    }
 
    return *this;
}
 
#endif
А main() остается прежней.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru