Тема: Робота з контейнером List
Потрібна допомога з виведенням та пошуком елементів в списку. Моя проблема полягає в тому що я не знаю як звернутися до елементів списку і вивести їх. В даному коді я маю доробити функцію виведення і функцію пошуку елемента списку за іменем.
Ось повний опис завдання:
Динамічний список (2 класи: клас "Елемент списку" і клас "Список" перебувають у відношенні агрегації)
Конструктори: за замовчуванням, з параметрами та копіювання.
Деструктор.
Функції:
вставлення елемента з голови (хвоста) у заданому місці;
виведення списку на екран;
пошук елемента списку;
очищення списку;
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<iomanip>
#include<list>
#include<string>
#include<type_traits>
#include<Windows.h>
#include<iterator>
using namespace std;
class Element
{
private:
string name;
string surname;
public:
Element(string name, string surname)
{
this->name = name;
this->surname = surname;
}
Element(const Element& element)
{
this->name = element.name;
this->surname = element.surname;
}
Element() = default;
~Element() {}
string GetName()
{
return name;
}
string GetSurName()
{
return surname;
}
void Input()
{
cout << "Enter the name: ";
cin >> name;
cout << "Enter the surname: ";
cin >> surname;
}
};
class List
{
private:
list<Element> Elements;
public:
void Show()
{
list <Element> ::iterator it = Elements.begin();
...........
}
void Find(string name)
{
.......
}
void Clear()
{
Elements.clear();
}
void Add(const Element& Obj, int index)
{
list <Element> ::iterator it = Elements.begin();
if (index >= Elements.size())
{
Elements.push_back(Obj);
}
else if (index >= 0)
{
advance(it, index);
Elements.emplace(it, Obj);
}
}
};
void main()
{
int size = 0;
List list;
bool index = false;
while (index != true)
{
Element item;
cout << "\t Menu: \n";
cout << "1.View the list\n";
cout << "2.Add a new element\n";
cout << "3.Find the element\n";
cout << "4.Clear the list\n";
cout << "5.Exit\n";
cout << "----------------\n";
cout << "Enter the number: ";
int menu;
cin >> menu;
system("cls");
switch (menu)
{
case 1:
{
if (size == 0)
{
cout << "The list is empty";
}
else
{
list.Show();
}
_getch();
system("cls");
break;
}
case 2:
{
int pos;
item.Input();
cout << "Enter the position of the item to insert ";
cin >> pos;
list.Add(item,pos);
size++;
system("cls");
break;
}
case 3:
{
if (size == 0)
{
cout << "The list is empty";
}
else
{
string name;
cout << "Enter the name: ";
cin >> name;
list.Find(name);
}
_getch();
system("cls");
break;
}
case 4:
{
list.Clear();
cout << "List was cleared";
_getch();
system("cls");
break;
}
case 5:
{
index = true;
break;
}
default:
{
cout << "A non-existent menu item is selected\n";
_getch();
system("cls");
}
}
}
_getch();
}