2011-11-14 14 views
5

मेरे पास एक संरचना है:सी ++: एक ढेर में structs भंडारण

 struct Vehicle 
{ 
    char ad; // Arrival departure char 
    string license; // license value 
    int arrival; // arrival in military time 
}; 

मैं स्ट्रक्चर में सभी मानों को ढेर में स्टोर करना चाहता हूं।

मैं स्टैक में एक मान को कर कर स्टोर कर सकता हूं:

 stack<string> stack; // STL Stack object 
    Vehicle v; //vehicle struct object 
    stack.push(v.license); 

मैं स्टैक में पूरी संरचना कैसे स्टोर कर सकता हूं ताकि मैं बाद में char, int, और स्ट्रिंग तक पहुंच सकूं?

उत्तर

10

सरल, बस Vehicle के लिए string की जगह और Vehicle का एक उदाहरण के लिए string का एक उदाहरण:

stack<Vehicle> stack; // STL Stack object 
Vehicle v; //vehicle struct object 
stack.push(v); 
+0

हाहा, मुझे विश्वास नहीं है कि यह इतना आसान था। धन्यवाद! – Nick

6

< और > के बीच प्रकार क्या आपके ढेर का आयोजन करेगा है।

std::stack<Vehicle> stack; 
Vehicle v; 
stack.push(v); 
1

क्या होगा जब वी दायरे से बाहर चला जाता है: आयोजित string पहले एक है, तो आप एक है कि Vehicles रखती हो सकती है?

void Foo(Stack <Vehicle>& stack) { 
    Vehicle* vPtr = new Vehicle(); 
    stack.push(vPtr); 
} 
+0

क्या मैं सिर्फ stack.push ({नया वाहन()} कर सकता हूं? –

+0

मुझे आपका वाक्यविन्यास पसंद है क्योंकि यह निर्दिष्ट करता है कि आप नव निर्मित ऑब्जेक्ट में स्पष्ट पॉइंटर्स का उपयोग करने का इरादा नहीं रखते हैं। – Vlad

0

मैं कैसे स्टैक में जी धक्का सकता है: मैं तो आप बेहतर अपने ढेर में बनाया था उन्हें ढेर और दुकानों संकेत पर वस्तु लगता है?

#include<iostream> 
#include<stack> 
using namespace std; 
struct node{ 
    int data; 
    struct node *link; 
}; 

main(){ 
    stack<node> s; 
    struct node *g; 
    g = new node; 
    s.push(g); 
} 
संबंधित मुद्दे