2010-05-27 18 views
5

C++'da bir B-ağacı uygulayarak, çiftleri kaydeden bir yığınım var. Sorun şu ki, bu yığına nasıl koydum çünkü itme sadece 1 argümanı kabul et. teşekkürler2 paramlı yığın STL

+3

sorununuzu açıklık getirebilir? Şimdi basit bir 'stack.push (std :: make_pair (birinci, ikinci)),' '' '' '' 'std :: stack >' 'ile ihtiyacınız var. – Pieter

cevap

3
#include <utility> 

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

Standart kütüphane tarafından sağlanan std :: çifti kullanın.

make_pair işleviyle bunları oluşturabilirsiniz.

#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

teşekkürler. Ben STL'de değilim. Sadece ihtiyacım var. Herkese teşekkürler. – 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; 
}