Witam!
Za pomocą biblioteki <stack> chciałem wprowadzać i zdejmować na i z stosu elementy struktury, jednak mam problem z doborem typu std::stack<?> nazwa.
Bez poprawek (oraz zmian które zostaną dodane) tak wygląda obecnie kod. Moje pytanie jest jak wprowadzić do deklaracji std::stack typ danych zgodny ze strukturą podaną w kodzie?
#include <string>
#include <iostream>
#include <stack>
#include <cctype>
struct world
{
std::string fullname;
double payment;
};
void print_stack_size(std::stack <int> & first_stack);
int main()
{
std::size_t quantity = 10;
std::stack <int> mystack;
world people;
char letter;
print_stack_size(mystack);
std::cout << "Wcisniej A (żeby dodać element do stosu), S (żeby przetworzyć element stosu) lub D (żeby zakoczyć)\n";
while(std::cin >> letter && toupper(letter) != 'D')
{
while(std::cin.get() != '\n') continue;
if(!isalpha(letter)) { std::cout << '\a'; continue;};
switch(toupper(letter))
{
case 'A':
std::cout << "Wprowadź nazwę: "; std::cin >> people.fullname;
mystack.push(people.fullname);
std::cout << "Wprowadź wartość: "; std::cin >> people.payment;
mystack.push(people.payment);
print_stack_size(mystack);
break;
case 'S':
print_stack_size(mystack);
mystack.pop();
std::cout << "Ostatni dodany element został zdjęty!\n";
print_stack_size(mystack);
break;
}//switch
std::cout << "Wcisniej A (żeby dodać element do stosu), S (żeby przetworzyć element stosu) lub D (żeby zakoczyć)\n";
}//while
std::cout << "Koniec programu!\n\n";
return 0;
}//main
void print_stack_size(std::stack <int> & first_stack)
{
if(first_stack.empty())
std::cout << "Kontener jest pusty!\n";
else
std::cout << "Kontener posiada elementy: " << first_stack.size() << std::endl;
}