STL堆栈与数组元素

时间:2015-01-27 18:57:31

标签: c++ data-structures stl stack

我是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);

2 个答案:

答案 0 :(得分:1)

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

  1. 创建stack<pair<int,string> >
  2. 要将pair<int,string>推入堆叠,请使用push()功能和make_pair功能为push()功能配对。
  3. 代码:

    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);