अगर मैं गलत नहीं हूँ, मैं कर सकते हैं std::transform
प्रदर्शन जगह में एक इनपुट और आउटपुट इटरेटर के समान सीमा का उपयोग करके। मान लें कि मेरे पास कुछ std::vector
वस्तु है vec
, तो मैं लिखूंगा
std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op)
एक उपयुक्त एकरी संचालन का उपयोग करना unary_op
।
सी ++ 17 मानक का उपयोग करते हुए, मैं std::execution::par
पहले तर्क के रूप में एक में चिपकाकर समानांतर में परिवर्तन को निष्पादित करना चाहूंगा । यह फ़ंक्शन को अधिभार लेखstd::transform
में अधिभार (1) से (2) तक जाने देगा । हालाँकि इस अधिभार की टिप्पणी कहती है:
unary_op
[...] अंत पुनरावृत्तियों सहित किसी भी पुनरावृत्तियों को अमान्य नहीं करना चाहिए, या इसमें शामिल श्रेणियों के किसी भी तत्व को संशोधित करना चाहिए। (सी ++ 11 के बाद से)
क्या "किसी भी तत्व को संशोधित करता है" वास्तव में इसका मतलब है कि मैं एल्गोरिथ्म का उपयोग नहीं कर सकता हूं या क्या यह एक अलग विवरण के बारे में बात कर रहा है जिसे मैंने गलत समझा है?