2010-05-27 38 views
5

Im triển khai một cây B trong C++, tôi có một ngăn xếp lưu cặp. vấn đề của tôi là, làm thế nào tôi đặt trong ngăn xếp này bởi vì đẩy chỉ chấp nhận 1 đối số. cảm ơnNgăn xếp STL với 2 tham số

+3

Bạn có thể làm sáng tỏ vấn đề của bạn? Bây giờ nó có vẻ đơn giản 'stack.push (std :: make_pair (thứ nhất, thứ hai));' với 'stack' là một' std :: stack > 'là tất cả những gì bạn cần. – Pieter

Trả lời

3
#include <utility> 

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

Sử dụng std :: pair do thư viện chuẩn cung cấp.

Bạn có thể tạo chúng với chức năng 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

cảm ơn. Tôi không kwon STL. nó chỉ cần tôi cần nó. cảm ơn tất cả mọi người. – 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; 
} 
Các vấn đề liên quan