मैं एक सरणी के अंतिम तत्व के बाद एक सूचक की ओर इशारा करते प्राप्त करने के लिए निम्नलिखित टेम्पलेट का उपयोग के अंत तक एक सूचक प्राप्त करना:एक सरणी
template <typename T, size_t n>
T* end_of(T (&array)[n])
{
return array + n;
}
अब मैं याद करने के लिए इस दृष्टिकोण के साथ कुछ समस्या रही हो लग रहे हैं , लेकिन मुझे याद नहीं है कि यह क्या था। मेरा मानना है कि इसमें टाइप पैरामीटर या फ़ंक्शन पैरामीटर की पसंद के साथ कुछ था, लेकिन मुझे यकीन नहीं है। तो बस एक सैनिटी चेक के रूप में, क्या आप उपरोक्त कोड के साथ कोई समस्या देखते हैं? छोटे उपयोग परीक्षण:
int test[] = {11, 19, 5, 17, 7, 3, 13, 2};
std::sort(test, end_of(test));
चूंकि आपको फ़ंक्शन में सरणी के आकार में गुजरना है, इसलिए आप वास्तव में क्या प्राप्त कर रहे हैं कि आप 'सरणी' टेम्पलेट का उपयोग करके प्राप्त नहीं कर पाएंगे? –
@Zac: मुझे नहीं, फ़ंक्शन में केवल एक पैरामीटर है। टेम्पलेट पैरामीटर 'n' स्वचालित रूप से कम हो जाता है, उदाहरण के कोड में देखा गया है कि आप केवल 'end_of (array)' कहते हैं। – fredoverflow
उस स्थिति में, जिस समस्या में आप भागेंगे, वह गतिशील सरणी से निपट रहा है क्योंकि 'n' केवल एक ही 'टी' का आकार होगा। –