я в настоящее время обучения, как связанные списки работы в C++, и я написал этот код, который дает мне ошибку компиляции, и я не получаю resalts, что я получил в более ранней версии коды. Это ранняя версия моего предыдущего кода, который я потерял.Связанных список и узлы
Так что мне нужна помощь с:
Как следует функция добавить (что помещает элемент последний в списке) выглядит?
Что мне нужно сделать, чтобы добавить к deconstructors?
И remove_if (T & t), который должен удалить все элементы со значением t, remove_if (предикат & pred), который должен удалить все элементы pred, возвращает true?
Что мне нужно сделать, чтобы добавить между T>?
Мой код, который я отредактировал:
#include <iostream>
using namespace std;
template <class T>
class List;
template <class T>
class Node {
public:
Node (T *t) : data(t), next(0) {}
~Node();
private:
T *data;
Node* next;
friend class List<T>;
};
template <class T>
class Predicate {
public:
Predicate() {}
virtual bool operator()(const T& v) = 0;
};
template <class T>
class List {
public:
List() : first(new Node<T>(T())) {} //"dummy"-node
void add(T *t);
void remove_if(T t);
void remove_if(Predicate<T> &pred);
void print();
private:
Node<T> *first;
};
Главная:
int main()
{
List<int> intlista;
intlista.add(new int(1));
intlista.add(new int(2));
intlista.add(new int(3));
intlista.add(new int(2));
intlista.add(new int(4));
intlista.add(new int(5));
intlista.add(new int(6));
intlista.print();
intlista.remove_if(2);
intlista.print();
Between<int> one_to_four(1,4);
intlista.remove_if(one_to_four);
intlista.print();
}
писал:
{ 1 2 3 2 4 5 6 }
{ 1 3 4 5 6 }
{ 5 6 }
Какие ошибки вы получаете – juanchopanza
вы должны показать 'Список определений :: add' в??. –
@juanchopanza «Между не было объявлено в этой области» «ожидаемое первичное выражение перед« int »« «ожидается; до» i нт «» «one_to_four не был объявлен в этой области» –