Я новичок в C++ и просто изучаю стековый push и pop-операцию. Я написал небольшую программу для нажатия и выталкивания некоторых элементов из стека. Моя программа-пример приведена ниже:Операция push и pop для 2D-матрицы и отображение их в C++
// stack::push/pop
#include <iostream> // std::cout
#include <stack> // std::stack
int main()
{
std::stack<int> mystack;
for (int i=0; i<5; ++i) mystack.push(i);
std::cout << "Popping out elements...";
while (!mystack.empty())
{
std::cout << ' ' << mystack.top();
mystack.pop();
}
std::cout << '\n';
return 0;
}
Но теперь я хочу выдвинуть несколько матрицы 3 * 3 на стек и хочу, чтобы каждый из них с помощью mystack.top(), а также попы каждой матрицы с помощью mystack.pop работать и отображать всю матрицу. Как реализовать стек для работы с несколькими матрицами?
Sample матрица может быть такой:
float A[3][3]={{1.0,2.0,3.0},{1.0,2.0,3.0},{1.0,2.0,3.0}};
float B[3][3]={{1.0,2.0,4.0},{1.0,5.0,3.0},{8.0,2.0,3.0}};
Итак, вы просто используете некоторую структуру данных, представляющую матрицу 3x3, вместо параметра 'int' в качестве шаблона для' std :: stack'. –
Похоже, вам нужно создать класс матрицы. – NathanOliver
Измените тип, хранящийся в стеке, как ваш тип матрицы. – Rob