Форум программистов, компьютерный форум 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() { подробнее

Показать сообщение отдельно
MrCold
852 / 750 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
30.11.2013, 16:27     Возврат моего объекта List из функции
Ошибка где-то в другом месте, в коде который вы не привели
push_back, is_not_space, isspace пересмотрите у себя
Попытался с имитировать . Работает

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
119
120
121
122
123
124
#include <iostream>     
#include <algorithm> 
#include <cctype>
#include <string>
#include <functional>
 
template<class T> 
struct Node
{
    T d;
    Node<T>* next;
};
template<class T> 
class List
{
public:
    typedef T* iterator;
    typedef const T* const_iterator;
    typedef T value_type;
 
    List();
  //  ~List();
 
//    void push_front(const T& val);
    void push_back(const T& val);
  //  void insertAt(size_t id, const T& val);
 
  //  bool pop_front();
  //  bool pop_back();
 
    bool isEmpty() const { return first == 0; }
    void print() const;
  //  void rprint() 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);
};
 
template<class T> 
 List<T>::List()
     {
        first = new Node<T>();
    //  first ->d = 10;
        first ->next = NULL;
     }
 template<class T> 
void List<T>::print() const
    {
        Node<T> *current = first;
        while (current)
        {
           std::cout << current->d << ' '  /*<< Curr->Next*/;
           current = current->next;
        }
    }
template<class T> 
void List<T>::push_back(const T& val)
    {
 
 Node<T> *current = first;
    Node<T> *newNode = new Node<T>();
      
 
    newNode->d = val;
    newNode->next = NULL;
 
    while (current->next) {
        current = current->next;
    }    
    current->next = newNode;
    }
 
 
template<class T> 
List<T>& List<T>::operator=(const List<T>& l)
{
    if(this != &l)
    {
        Node<T>* current = l.first;
        while(current != 0)
        {
            this->push_back(current->d);
            current = current->next;
        }
    }
 
    return *this;
} 
List<std::string> split(std::string& s);
int main()
{
    std::string str = "Hello my name is Slava";
 
    List<std::string> l = split(str);
    l.print();
    std::cin.get();
    std::cin.get();
    return 0;
}
 
List<std::string> split(std::string& s)
{
    List<std::string> sl;
    std::string::iterator first = s.begin();
 
    while(first != s.end())
    {
        first = std::find_if(first, s.end(),  std::not1(std::ptr_fun<int, int>(std::isspace)));
        std::string::iterator second = std::find_if(first, s.end(),std::ptr_fun<int, int>(std::isspace));
 
        if(first != s.end())
            sl.push_back(std::string(first, second));
        first = second;
    }
 
    return sl;
}

Цитата Сообщение от Suares Посмотреть сообщение
Возможно у меня функция operator= не правильно написана:
Да забыл
Нужно очищать старый лист


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template<class T> 
List<T>& List<T>::operator=(const List<T>& l)
{
    if(this != &l)
    {  
        this->clear() ;
        this->first = new Node<T>();
        this->first ->next = NULL;
        Node<T>* current = l.first;
        while(current != 0)
        {
            this->push_back(current->d);
            current = current->next;
        }
    } 
    return *this;
}
C++
1
2
3
4
5
6
7
8
9
10
11
 template<class T> 
void List<T>::clear() 
    {
        while (first)
        {
            Node<T> *current = first;
            first = first->next;
            delete current;
        }
        first = NULL;
    }
 
Текущее время: 05:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru