मैं एक डेटा संरचना की तलाश कर रहा हूं, जो एक नया तत्व सम्मिलित होने पर उसके सबसे पुराने / अंतिम तत्व को बाहर कर देगा। उदाहरण के लिए, D
संरचना का प्रतिनिधित्व करते हैं। D
प्रकार के 3 तत्व शामिल हैं Number
D
के मूलभूत मूल्यों के लिए शुरू हो जाएगा 1, 2
और 3
।
एक तो Number
यह है कि मान 5
में डाला जाता है D
, 3
आगे बढ़ा दिया जाएगा, जबकि 1
और 2
सही स्थानांतरित कर दिया जाता है।
पहली बात जो मन में आती है वह एक सरणी होगी, लेकिन परिभाषा में धकेलने वाला व्यवहार शामिल नहीं है।
वैसे कोई अंतर्निर्मित डेटा संरचना नहीं है, लेकिन Doubly से जुड़ी सूची से जुड़ी सूची का सही उपयोग करना सरल है ?
—
यूजर नॉट
एक कतार से विरासत में मिले रैपर का उपयोग करने के बारे में क्या? फिर आप विधि जोड़ें
—
फ्रांसेस्को डोंडी
void push_replace(T val) { pop(); push(val); }
।
@FrancescoDondi शायद होना चाहिए
—
valbaca
T push_replace(T val) { T old = pop(); push(val); return old; }
अब निश्चित रूप से अब है: आपने इसे अनौपचारिक रूप से परिभाषित किया है; शायद आपको यह पूछना चाहिए कि क्या यह सर्वविदित है, आम तौर पर सहमत इंटरफ़ेस है और क्या कार्यान्वयन उपलब्ध हैं (यह नहीं कि अंतिम एक महान मुद्दा है)।
—
PJTraill
@valbaca मैं C ++ के बारे में सोच रहा हूं, जहां
—
फ्रांसेस्को डोंडी
pop()
एक जटिल ऑब्जेक्ट को कॉपी करने के अपवादों के मामले में स्टैक अनइंडिंग के साथ समस्याओं के कारण कुछ भी नहीं लौटाता है, इसलिए front()
यदि आप इसे त्यागने से पहले ज़रूरत हो तो उपयोग करने वाले हैं । लेकिन यकीन है, अगर आप अपवादों की परवाह नहीं करते हैं तो आपका रास्ता बेहतर हो सकता है।