【问题标题】:Stack STL with 2 params使用 2 个参数堆叠 STL
【发布时间】:2010-05-27 16:39:11
【问题描述】:

我在 C++ 中实现一个 B 树,我有一个保存对的堆栈。我的问题是,我如何放入这个堆栈,因为 push 只接受 1 个参数。谢谢

【问题讨论】:

  • 你能澄清你的问题吗?现在看来,您只需要一个简单的stack.push(std::make_pair(first, second));stack 就是std::stack<std::pair<T1, T2> >

标签: c++ stl stack


【解决方案1】:

使用标准库提供的 std::pair。

您可以使用make_pair 函数创建它们。

#include <iostream>
#include <stack>
#include <string>
using namespace std;

int main(int argc, char **argv) 
{
    int myInt = 1;
    string myString("stringVal");

    stack<pair<string, int> > myStack; 
    myStack.push(make_pair(myString, myInt));

    return 1;
}

【讨论】:

  • 谢谢。我不懂STL。这只是我需要它。谢谢大家。
【解决方案2】:
#include <utility>

// ...
stack<pair<string,string> > s;
s.push(make_pair("roses", "red"));

【讨论】:

    【解决方案3】:
    #include <stack>
    #include <utility>
    #include <iostream>
    using namespace std;
    
    int main() {
        stack <pair<int,int> > s;
        s.push( make_pair( 1, 2 ) );
        pair <int, int> p = s.top();
        cout << p.first << " " << p.second << endl;
    }
    

    【讨论】:

      【解决方案4】:
      int main() 
      {
          stack <pair<int,int> > s;
          s.push({1,2});
          cout << s.top().first << " " << s.top().second; 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 1970-01-01
        • 2020-12-23
        • 1970-01-01
        • 2013-03-21
        • 1970-01-01
        相关资源
        最近更新 更多