2010-05-27 2 views
5

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

+3

Можете ли вы уточнить вашу проблему? Теперь это простой «stack.push» (std :: make_pair (первый, второй)); '' '' '' '' std :: stack > 'все, что вам нужно. – Pieter

ответ

3
#include <utility> 

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

Используйте std :: пару, предоставляемую стандартной библиотекой.

Вы можете создать их с помощью функции 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

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; 
} 
Смежные вопросы