मुझे पता है कि इसे लागू करने या कंटेनर का उपयोग करने के अन्य तरीके हैं। यह सिर्फ मेरी जिज्ञासा को पूरा करने के लिए है।संदर्भ द्वारा सरणी पास करना - एक बड़े सरणी का सबसेट
void byref(int (&a)[5]);
int main()
{
int a[5];
byref(a);
}
संदर्भ द्वारा एक सी शैली सरणी गुजर का एक लाभ यह है कि sizeof
के रूप में होगा std::end
उस पर काम करेंगे, है: मान लीजिए मैं निम्नलिखित कोड है। लेकिन अब यह केवल इस आकार की सरणी पास करना संभव है।
क्या संदर्भ द्वारा इस फ़ंक्शन में एक बड़ी सरणी का सबसेट पास करना संभव है? उदाहरण के लिए, मैं करना चाहता हूं:
int main()
{
int a[10];
byref(a + 1);
}
क्या यह काम करने का कोई तरीका है?
मैं बनाने और चलाने के लिए, VS2015 में होने की उम्मीद मूल्यों दे यह मिल गया, लेकिन निश्चित रूप से कोड बहुत कुशल दिखता है:
byref(reinterpret_cast<int(&)[5]>(*(a + 1)));
एक 'array_view' का उपयोग करें। –
@ करोलो हॉर्वथ, ओपी जानता है कि इसे लागू करने या कंटेनरों का उपयोग करने के अन्य तरीके हैं। –
С ++ में आप टेम्पलेट्स का उपयोग कर सकते हैं: 'टेम्पलेट शून्य बायफ (int (& a) [N]);' –
Constructor