具有数组元素的 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
.
- 创建
stack<pair<int,string> >
.
- 要将
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"});
我是 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
.
- 创建
stack<pair<int,string> >
. - 要将
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"});