मैं प्रवाह नेटवर्क पर एक पुनरावृत्ति गणना कर रहा हूं जिसके दौरान मुझे यह रिकॉर्ड करने की आवश्यकता है कि प्रत्येक स्रोत प्रत्येक किनारे पर प्रवाह में कितना योगदान देता है। किसी एक किनारे पर प्रवाह औसतन 2% स्रोतों के कारण होता है, इसलिए मैं vector< map<int, double> > flow
परिभाषित करता हूं, जहां flow[e][s] = f
का अर्थ है कि स्रोत s
स्रोत के कारण किनारे e
पर प्रवाह है। प्रत्येक पुनरावृत्ति पर, flow
में प्रत्येक f
अपडेट हो जाता है।मानचित्र के वेक्टर को प्रतिस्थापित करने के लिए बाहरी मेमोरी डेटा संरचना
कार्यक्रम का शीर्ष मेमोरी उपयोग 4 जीबी के करीब आता है। यह (32-बिट) लिनक्स और ओएस एक्स पर काम करता है, लेकिन यह विंडोज़ पर दुर्घटनाग्रस्त हो जाता है (जो 2 GB per process limit लगाता है)।
मैं vector< map<int, double> >
इंटरफ़ेस (या अन्यथा इस समस्या के आसपास हो) के साथ डिस्क-आधारित डेटा संरचना को कैसे कार्यान्वित कर सकता हूं?