我是c ++的新手。我想用数组创建一个堆栈。我正在使用STL。我需要在数组中存储两个值,然后按下/弹出以进行堆栈 在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);
答案 0 :(得分:1)
由于您只想存储不同数据类型的两个值,因此可以使用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)
如果在使用-std=c++11
进行编译时启用g++
标记,则可以替换
s.push(make_pair(1,string("item")));
与
s.push({1,"item"});
答案 1 :(得分:0)
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);