अमूर्त उपलब्ध कराना चाहते हैं की परत के आधार पर आप ओलाफ का दृष्टिकोण या कुछ एसटीएल महान स्तर तक का उपयोग करता है के बीच चुना जाना चाहिए:
template <class Iter>
void function(Iter first, Iter last)
{
// for example, to get size:
std::size_t size = std::distance(first, last);
// for example, to iterate:
for (Iter it = first; it != last; ++it)
{
// *it to get the value, like:
std::cout << *it << std::endl;
}
}
इस तरह, आप सरणियों के लिए न केवल फ़ंक्शन का उपयोग कर सकते हैं, लेकिन विभिन्न एसटीएल प्रकारों के लिए: वैक्टर, सूचियां, कतार, ढेर और इतने सारे।
int tab[4] = {1,2,3,4};
function(tab, tab+4);
std::vector<int> vec;
// fill vector with something
function(vec.begin(), vec.end());
जब आप कार्य करने के लिए एक सरणी पास करते हैं तो यह सरणी के पहले तत्व को पॉइंटर के रूप में क्षय करता है। तो दोनों समान हैं। इनमें से –
इनमें से? 'शून्य कार्य (std :: स्ट्रिंग कॉन्स और स्ट्र) {...}; 'सबसे अच्छा है। – Johnsyweb
अनुशंसित पढ़ने: http://stackoverflow.com/a/4810672/78845 – Johnsyweb