का पहला तत्व कैसे प्राप्त करें Istd :: set
मुझे अपने सॉफ़्टवेयर में एक अजीब बग मिला।
थोड़ी देर के पाश जहां मैं एक एसटीडी से तत्वों को दूर :: सेट, मैं हमेशा चाहता हूँ पहला तत्व लेने के लिए जब तक कंटेनर खाली है अंदर:
std::set< int*> nodes;
// Fill nodes
for (int i=0; i<10;i++)
nodes.insert(new int);
//
while (!nodes.empty())
{
int* pivot = (*nodes.begin());
// do some operation with pivot erasing some elements from nodes
}
मैंने पाया कि पहला तत्व को लागू इस तरह से काम करता है जीसीसी के साथ लेकिन एमएसवीसी के साथ नहीं, यह दुर्घटनाग्रस्त हो जाता है जहां मैं (*nodes.begin())
इटरेटर को कम करने की कोशिश करता हूं।
क्या std :: set के दो कार्यान्वयन अलग-अलग व्यवहार करते हैं?
मैं डेटा संरचना को कार्यान्वित करने के अंतर के साथ रखना चाहता हूं, क्या यह संभव है?
शायद मैं डेटा संरचना के संचालन के इस प्रकार के लिए
अपने भिन्नता के बाद क्या होता एक अपने-बार दोहराना सेट से नहीं हटा सकते है? – Nick
"नोड्स से कुछ तत्वों को मिटाने वाले पिवट के साथ कुछ ऑपरेशन करें" –
इस तरह की अव्यवस्था * (nodes.begin()) – v01d