2011-11-28 11 views
6

<algorithm> से remove फ़ंक्शन का उपयोग कैसे कर सकता हूं? (या कोई अन्य ऑपरेशन, मैं इसे वैक्टर के साथ उपयोग करना चाहता हूं, मैंने इसे घोषित करने के लिए cdef extern करने की कोशिश की, लेकिन मुझे अभी तक कोई टेम्पलेट फ़ंक्शन नहीं है, मुझे लगता है)साइथन वेक्टर ऑपरेशंस

उत्तर

6

साइथन केवल कुछ बाहरी लाइब्रेरी में संकलित कोड के विरुद्ध उचित रूप से लिंक कर सकता है सी कॉलिंग सम्मेलन। टेम्पलेट फ़ंक्शंस का उपयोग करने के लिए, आपको extern "C" रैपर फ़ंक्शन लिखना होगा जो एल्गोरिदम के विशिष्ट अवतार का उपयोग करता है (यानी आपको टेम्पलेट पैरामीटर को ठीक करना होगा)।

+0

धन्यवाद। एक अच्छा तरीका है। लेकिन इस मामले में मैं साइथन सीडीएफ कक्षाओं का उपयोग टेम्पलेट्स के रूप में नहीं कर सकता (यानी सीडीएफ वेक्टर [MyCdefClass] vec), है ना? शायद * पायओब्जेक्ट के साथ लेकिन इस तरह प्रदर्शन का नुकसान होता है। (पायथन टेबल लुकअप का उपयोग करता है) – Patric

+0

@ पैट्रिक: जहां तक ​​मुझे पता है, उपयोग के लिए 'std :: vector' को लपेटने का कोई आसान तरीका नहीं है साइथन का उपयोग कर पायथन में। –

+0

हमारे पास यह है: 'libcpp.vector cimport वेक्टर' से। और हम इस तरह की चीजें कर सकते हैं 'सीडीएफ कक्षा ओबीजे: पास; सीडीएफ वेक्टर [Obj] vec; vec.push_back (Obj()); '। – Patric

संबंधित मुद्दे