मैं लागू कर रहा हूँ एक एल्गोरिथ्म में C++ के साथ को बढ़ावा देने के ग्राफ.
मैं खोजने के लिए चाहते हैं सभी शीर्ष के पड़ोस में वी (तो, अपने सभी पड़ोसियों के साथ) है, तो एक संपत्ति को बदलने के लिए और अंत में स्पष्ट सभी उनके किनारों के.
मैंने पाया में समारोह को बढ़ावा देने adjacent_vertices(v,g)
(जहाँ v शीर्ष और जी ग्राफ) को खोजने के लिए सभी पड़ोसियों. फिर मैं लागू करना चाहते हैं उन सभी पर समारोह clear_vertex(v,g)
(फिर से, वी शिखर और जी ग्राफ) को दूर करने के लिए सभी अपने किनारों.
इस बिंदु पर, मैं एक समस्या है. के adjacent_vertices
समारोह रिटर्न की एक जोड़ी adjacency_iterator
के लिए है , जबकि clear_vertex
समारोह में मैं की जरूरत है vertex_iterator
(अगर मैं सही ढंग से समझ कैसे इन कार्यों के लिए काम).
तो, वहाँ एक आसान तरीका है को बदलने के लिए adjacency_iterator
में vertex_iterator
? अगर मैं रखना adjacency_iterator
और इसे पारित करने के लिए clear_vertex
समारोह, समस्या यह है कि यह नहीं निकाल किनारों (या उन्हें हटाने के लिए बेतरतीब ढंग से कुछ कोने).
मेरी गलत कोड है:
Graph::adjacency_iterator v,vend;
for(boost::tie(v,vend) = neighbours; v != vend ; ++v) {
clear_vertex(*v,g2);
}