Существует шаблон списка:
#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. Но в силу неопытность не выходит, прошу помочь советом, как лучше реализовать подобную вещь. Был бы рад примерам. Всем заранее спасибо!
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
На данный момент система трансляций с камеры и экрана на удалённый сервер передаёт jpeg кадры, то есть используется покадровое сжатиеДля экономии...
Недавно начал интересоваться автоматизацией в тестировании и в качестве объекта для изучения выбрал рандомный сайт (ссылка будет ниже)
Мне надо просетить данные отеляДанные хранятся в файле txt, в таком виде: