2010-05-27 10 views
5

Im implementacja B-drzewa w C++, mam stos, który zapisuje pary. moim problemem jest to, w jaki sposób wstawiam ten stos, ponieważ push akceptuje tylko 1 argument. dziękiStos STL z 2 parami

+3

można wyjaśnić swój problem? Teraz wydaje się to proste 'stack.push (std :: make_pair (pierwszy, drugi));' z 'stack' będącym' std :: stack > 'to wszystko, czego potrzebujesz. – Pieter

Odpowiedz

3
#include <utility> 

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

Użyj std :: pair dostarczonej przez standardową bibliotekę.

Można je utworzyć za pomocą funkcji 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

dzięki. Nie kwon STL. po prostu tego potrzebuję. Dziękuję wszystkim. – petercartagena

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