c++11 में, कोई फ़ंक्शन में पैरामीटर प्रारंभ करने के लिए प्रारंभकर्ता सूचियों का उपयोग कर सकता है। इसका उद्देश्य क्या है? क्या कॉन्स वैक्टर के साथ ऐसा नहीं किया जा सकता है? नीचे दो कार्यक्रमों का अंतर क्या है? स्थिरांक वेक्टर का उपयोगप्रारंभकर्ता सूची बनाम वेक्टर
#include <iostream>
using namespace std;
int sumL(initializer_list<int> l){
int sum = 0;
for (const auto i: l){
sum += i;
}
return sum;
}
int main(){
cout << sumL({1, 2, 3}) << "\n";
return 0;
}
:
प्रारंभकर्ता सूची का उपयोग करना
#include <iostream>
#include <vector>
using namespace std;
int sumV(const vector<int> l){
int sum = 0;
for (const auto i: l){
sum += i;
}
return sum;
}
int main(){
cout << sumV({1, 2, 3}) << "\n";
return 0;
}
दूसरे कोड को आवश्यकतानुसार अधिक आवश्यकता होती है (और वेक्टर को प्रारंभिककर्ता_सूची भी सूखता है) –
ऑफटॉपिक: ध्यान दें कि आप वेक्टर की एक प्रति बनाते हैं, यानी, आपने संदर्भ का उपयोग नहीं किया है। लूप के लिए वही है, अब यह केवल एक int है लेकिन बड़ी वस्तुओं के साथ संदर्भ से बच जाएगा कि आप प्रत्येक ऑब्जेक्ट को वेक्टर में कॉपी करते हैं। – Michiel