विशेष रूप से कोड है। लाइन 15 क्या कर रहा है (बदलने के लिए कॉल)?[] const_iterator :: value_type std :: में परिवर्तन
क्या कोई यह बता सकता है कि यहक्यों आउटपुट करता है? दूसरी ओर यदि मैं लाइन 15 में सीबी ++ सीबी में बदलता हूं, तो यह 01110 आउटपुट करता है। लाइन 15 पर रिटर्न वैल्यू क्या है?
#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
#include <list>
int main()
{
typedef std::list<int> L;
L l(5);
typedef L::const_iterator CI;
CI cb = l.begin(), ce = l.end();
typedef L::iterator I;
I b = l.begin();
std::transform(cb, --ce, ++b, [] (CI::value_type n) { return ++n; });
std::copy(l.begin(), l.end(), std::ostream_iterator<CI::value_type>(std::cout));
std::cout << std::endl;
return 0;
}
यह कोड अनावश्यक रूप से जटिल होगा। Typedefs कोई स्पष्टीकरण नहीं जोड़ता है और परिवर्तनीय नाम उपयोगी नहीं हैं। –
'सीआई :: value_type' यहां 'int' होने की बहुत अधिक गारंटी है। कुछ परिवर्तनीय घोषणाओं को स्पष्ट करने के लिए 'ऑटो' का भी उपयोग किया जा सकता है। –
क्या आप पूछ रहे हैं कि [lambda] (http://en.cppreference.com/w/cpp/language/lambda) क्या है? –