मैं एक छोटे से जावा पृष्ठभूमि के साथ C++ में जानने के लिए कोशिश कर रहा हूँ, और मैं कोड है कि दो सूचियों के चौराहे रिटर्न लिखने के लिए कोशिश कर रहा हूँ में बदलने सूचकांक-वाक्य रचना। मेरा मानना है कि मेरे पास अवधारणा का सही विचार है, लेकिन सिंटैक्स में परेशानी हो रही है क्योंकि कुछ भी संकलित नहीं है।शुरुआती सी ++: इटरेटर-वाक्य रचना
#include <iostream>
using namespace std;
#include <list>
template <typename Object>
list<Object> intersection(const list<Object> & L1, const list<Object> & L2){
std::list<Object> result;
int pos1 = 0;
int pos2 = 0;
while (pos1 < L1.size() && pos2 < L2.size()) {
if (L1[pos1] > L1[pos2]) {
pos1++;
} else if (L2[pos2] > L1[pos1]) {
pos2++;
} else {
result.push_back(L2[pos2]);
pos1++;
pos2++;
}
}
return result;
}
चीजें मुझे लगता है कि मैं जरूरत: पुनरावर्तक (मुझे यकीन है कि जिस तरह से मैं इस सूची तक पहुँचने कर रहा हूँ सही नहीं है कर रहा हूँ)
मैंने शीर्षक (उम्मीदवार) को और अधिक वर्णनात्मक बनाने के लिए शीर्षक संशोधित किया है, और यह इंगित करने के लिए कि यह अपेक्षाकृत सामान्य मुद्दा है, जो भविष्य के उपयोगकर्ताओं के लिए दिलचस्प है। मुझे उम्मीद है कि यह ठीक है (अगर नहीं तो कृपया वापस करें)। – jogojapan
चूंकि आप सी ++ में शुरुआती हैं, इसलिए यह उल्लेखनीय हो सकता है कि आपको वास्तव में 'std :: list' ... का उपयोग नहीं करना चाहिए। (ऐसा नहीं है क्योंकि सी ++ वर्ग में कुछ भी गलत है, लेकिन क्योंकि यह एक भयानक डेटा संरचना है)। जब आपको केवल एक कंटेनर की आवश्यकता होती है, तो इसके बजाय 'वेक्टर' के लिए डिफ़ॉल्ट। (इससे आपके कोड को इटरेटर्स की बजाय इंडेक्स के साथ काम करने की इजाजत मिल जाएगी) –
jalf
अच्छा बिंदु। ज्यादातर अवसरों में 'वेक्टर' बेहतर होता है, लेकिन मुझे लगता है कि 'सूची' और 'वैक्टर' दोनों के फायदे और नुकसान जानने के लिए अच्छा है और यदि आप किसी बिंदु पर अच्छा सी ++ कोड लिखना चाहते हैं तो आपको पॉइंटर्स/इटरेटर्स के बारे में जानना होगा। – Ari