मेरे पास सी ++ में एक विधि है जो तर्क के रूप में युगल की एक सरणी लेती है। मैं जावा से इस विधि को बुला रहा हूं और युगल की एक सरणी पास करने की आवश्यकता है। सी ++ दिनचर्या सरणी के मानों को पढ़ता है और संशोधित करता है और मुझे जावा में उन अद्यतन मानों की आवश्यकता होती है। मैं यह कैसे करु?मैं स्विग का उपयोग कर जावा से सी ++ में सरणी कैसे पास करूं?
उदाहरण के लिए, सी ++ दिनचर्या ले:
void myMethod(double *values, int size) {
for (int i=0; i < size; i++) {
values[i] = 2*values[i];
}
}
और जावा कोड:
double[] values = { 1.3, 1.1 };
myMethod(values,values.length);
System.out.println(values[0]); // prints 2.6
मुझे लगता है कि MyMethod के लिए एक कॉल ऊपर कॉल की तरह नहीं बनाया जा सकता है ... या यह कर सकते हैं ? और इस काम को करने के लिए स्विग में क्या आवश्यक है। अगर मैं उपरोक्त की तरह कोई कॉल नहीं कर सकता, तो मैं अपने मूल्यों को सी ++ कोड में कैसे प्राप्त करूं?
एसडब्ल्यूआईजी को मेरे उत्तर से संबोधित किया गया है। बाकी के उत्तरों विकल्पों पर चर्चा करते हैं। –
हां, बहुत बहुत धन्यवाद एंडी! आप मेरे प्रश्न को समझते हैं और एक बहुत ही उचित उत्तर देते हैं ... मैं अभी भी अधिक उत्तरों की तलाश में हूं। मुझे विशेष रूप से दिलचस्पी है कि ज्यादातर लोग क्या करते हैं, क्योंकि यह स्थिति हर समय आती है। क्या अधिकांश लोग स्विग 2 का उपयोग करते हैं? क्या अधिकांश लोग अपना खुद का टाइपमैप लिखते हैं? वे दोनों मेरे लिए चरम सीमा की तरह ध्वनि। – Jason
यदि मुझे सरणी को सी ++ में मैन्युअल रूप से कॉपी करना है तो यह ठीक है। अगर मैं सी ++ में एक सरणी आवंटित कर सकता हूं और जावा में मानों तक पहुंचने के लिए विशेष तरीकों का उपयोग करना है, तो यह ठीक है। इस तरह के मामलों में ज्यादातर लोग क्या करते हैं? – Jason