Я хотел бы получить некоторую помощь о том, как я должен написать эту функцию add() о том, как поместить элементы в последнее пятно списка. Похоже, что это на данный момент:Ввод элемента последним в связанном списке C++
я редактировал его и есть мой класс сейчас:
#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"-nod först
void add(T *t);
void remove_if(T t);
void remove_if(Predicate<T> &pred);
void print(); // skriver alla elementen inom "måsvingar"
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));
Лучшая помощь, попробуйте использовать [ 'станд :: list'] (http://en.cppreference.com/w/cpp/container/list) – deepmax
Как реализован «Узел»? Чтобы связать этот список, '' Node'' должен содержать указатель на следующий '' Node''. Добавление элемента в спину может быть выполнено либо путем перемещения этих указателей, либо путем добавления указателя на последний элемент в классе '' List''. – amaurea
@amaurea Я отредактировал главный пост, чтобы вы могли увидеть сами :) –