Стек STL с 2 параметрами - PullRequest
5 голосов
/ 27 мая 2010

Я реализую B-дерево в C ++, у меня есть стек, который сохраняет пары. Моя проблема в том, как я положил в этот стек, потому что push только принять 1 аргумент. спасибо

Ответы [ 3 ]

6 голосов
/ 27 мая 2010

Используйте 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;
}
4 голосов
/ 27 мая 2010
#include <utility>

// ...
stack<pair<string,string> > s;
s.push(make_pair("roses", "red"));
3 голосов
/ 27 мая 2010
#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;
}
...