【发布时间】:2016-10-12 13:50:19
【问题描述】:
我是 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 操作弹出每个矩阵并显示整个矩阵。如何实现多矩阵运算的堆栈?
样本矩阵可以是这样的:
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的模板参数。 -
听起来你需要做一个矩阵类。
-
将堆栈中存储的类型更改为您的矩阵类型。
-
你能给我一个演示代码吗?我对这个@Rob 很陌生
-
@user6823702
std::stack<Your_Matrix_Type>。不知道您还需要什么信息。