যদি আমার ভুল না হয় তবে আমি ইনপুট এবং আউটপুট পুনরুক্তি হিসাবে একই পরিসীমা ব্যবহার করে জায়গায়std::transform
সঞ্চালনা করতে পারি । ধরুন আমার কিছু বস্তু আছে , তবে আমি লিখবstd::vector
vec
std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op)
একটি উপযুক্ত unary অপারেশন ব্যবহার করে unary_op
।
C ++ 17 স্ট্যান্ডার্ড ব্যবহার করে, আমি std::execution::par
প্রথম যুক্তি হিসাবে সেখানে একটি আটকে সমান্তরালে রূপান্তরটি সম্পাদন করতে চাই । এটি ফাংশনটিকে ওভারলোড (1) থেকে (2) এ সিপ্রেফারেন্স নিবন্ধে যেতে দেয়std::transform
। তবে এই ওভারলোডের মন্তব্যগুলি বলে:
unary_op
[...] অবশ্যই শেষ পুনরাবৃত্তকারীগুলি সহ কোনও পুনরাবৃত্তিকারীকে অবৈধ করতে হবে না, বা জড়িত ব্যাপ্তির কোনও উপাদানকে সংশোধন করবে না। (যেহেতু সি ++ 11)
"কোনও উপাদানকে সংশোধন করুন" এর অর্থ কি আসলে আমি অ্যালগরিদমটি জায়গায় ব্যবহার করতে পারি না বা এটি কি অন্যরকম বিস্তারিত সম্পর্কে কথা বলছে যা আমি ভুল ব্যাখ্যা করেছি?