具有数组元素的 STL 堆栈

STL stack with elements of array

我是 C++ 新手。我想用数组创建一个堆栈。我正在使用 STL。我需要将两个值存储在一个数组中,然后 push/pop 进行堆叠 在 python 我会简单地做:

s = Stack()
s.push((1,"item"))
s.push((3,"item"))

因此堆栈中将有两个元组 (1,"item"), (3,"item)

我在 C++ 中尝试过类似的方法,但它是错误的:

stack<string, list<string> > exampleStack;
string test[2] = {"wtf","lol"};
exampleStack.push(dd);
stack<list<string> > exampleStack;

list<string> l1 = list<string>;
l1.push_back("aaa");
l1.push_back("bbb");
exampleStack.push(l1);

list<string> l2 = list<string>;
l2.push_back("ddddd");
l2.push_back("eeeee");
exampleStack.push(l2);

由于您只想存储 两个 不同数据类型的值,您可以使用 std::pair.

  1. 创建 stack<pair<int,string> >.
  2. 要将 pair<int,string> 压入堆栈,请使用 push() 函数和 make_pair 函数为 push() 函数配对。

代码:

stack<pair<int,string> > s;
s.push(make_pair(1,string("item")));
s.push(make_pair(3,string("item")));

编辑:(感谢@imlyc)

如果在使用g++编译时启用-std=c++11标志,则可以替换

s.push(make_pair(1,string("item")));

s.push({1,"item"});