2010-05-27 30 views
5

我在C++中實現B樹,我有一個堆棧可以節省對。我的問題是,我怎麼把這個堆棧,因爲推只接受1參數。謝謝用2個參數堆棧STL

+3

你能澄清你的問題?現在看起來就是一個簡單的'stack.push(std :: make_pair(first,second));''stack'是一個'std :: stack >'是你所需要的。 – Pieter 2010-05-27 16:42:39

回答

3
#include <utility> 

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

使用標準庫提供的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; 
} 
+0

謝謝。我不喜歡STL。這只是我需要它而已。謝謝大家。 – petercartagena 2010-05-27 17:42:09

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