Проблема с поиском элемента в списке

191
16 декабря 2017, 06:54

Существует шаблон списка:

#include <iostream>
template<class T>
class List {
private:
struct Element {
    T l_data;
    Element *l_next;
};
Element *pHead{};     // указатель на первый элемент списка
Element *pPrev{};     // указатель на последний элемент списка
int countElem;      // количество элементов в списке
public:
List() {
    pHead = nullptr;
    countElem = 0;
}
~List() {
    while (pHead != NULL) {
        Element *pTemp = pHead;
        pHead = pHead->l_next;
        delete pTemp;
    }
}
void addToList(T data) {
    Element *temp;
    temp = new Element;
    if (pHead == NULL)
        pHead = temp;
    else
        pPrev->l_next = temp;
    temp->l_data = data;
    temp->l_next = NULL;
    pPrev = temp;
    ++countElem;
}
void printList() {
    Element *pTemp = pHead;
    while (pTemp != NULL) {
        std::cout << pTemp->l_data << " ";
        pTemp = pTemp->l_next;
    }
    std::cout << std::endl << "Количество: " << countElem << std::endl;
}
  /*  T & findElement(T &aim) {
    Element *pTemp = pHead;

    while (pTemp != nullptr) {
        if (pTemp->l_data == aim){
        }
        else
            pTemp = pTemp->l_next;
    }
}*/
};

И существует класс описывающий "сущность" автобуса:

 #include <cstring>
 class Bus {
 public:
int b_numRoute;
int b_numBus;
char *b_Name;
Bus() : b_numRoute(0),
        b_numBus(0),
        b_Name(nullptr) {}
Bus(int numRoute, int numBus, const char *Name) {
    b_numBus = numBus;
    b_numRoute = numRoute;
    b_Name = new char[strlen(Name)];
    strcpy(b_Name, Name);
}
~Bus() { delete[]b_Name; }
friend const bool operator == (Bus &bus1, Bus &bus2) { return      bus2.b_numBus == bus1.b_numBus; }
friend std::ostream &operator<<(std::ostream &s, Bus &bus) {
    s << "Номер маршрута: " << bus.b_numRoute << std::endl << "Номер   автобуса: " << bus.b_numBus << std::endl;
    /*s << "Имя водителя: ";
    for (int i = 0; i < strlen(bus.b_Name); i++)
        s << bus.b_Name[i];*/
    s << std::endl << std::endl;
    return s;
}
};

Вопрос вот в чем: Мне нужно создать два списка, затем по номеру автобуса находить элемент в одном списке, и добавлять его в другой. Пробовал переопределить равенство в классе Bus и написать обычный шаблонный поиск в шаблоне List. Но в силу неопытность не выходит, прошу помочь советом, как лучше реализовать подобную вещь. Был бы рад примерам. Всем заранее спасибо!

READ ALSO
использовать функции из linux .so

использовать функции из linux .so

Линкуюso библиотеку динамически

263
Создание потокового видео x264 на C++

Создание потокового видео x264 на C++

На данный момент система трансляций с камеры и экрана на удалённый сервер передаёт jpeg кадры, то есть используется покадровое сжатиеДля экономии...

227
Явные ожидания Selenium

Явные ожидания Selenium

Недавно начал интересоваться автоматизацией в тестировании и в качестве объекта для изучения выбрал рандомный сайт (ссылка будет ниже)

223
Как избежать ошибку при парсе строки в Long?

Как избежать ошибку при парсе строки в Long?

Мне надо просетить данные отеляДанные хранятся в файле txt, в таком виде:

275