আপনার একটি ব্যবহার করতে হবে back_inserter
:
std::copy(input.begin(), input.end(), std::back_inserter(output));
std::copy
আপনি যে পাত্রে সন্নিবেশ করছেন তাতে উপাদান যুক্ত করে না: এটি পারে না; এটির ধারকটিতে কেবল একটি পুনরাবৃত্তি রয়েছে। এর কারণ হিসাবে, আপনি যদি কোনও আউটপুট পুনরাবৃত্তিকে সরাসরি এতে পাস করেন তবে আপনাকে std::copy
অবশ্যই নিশ্চিত করতে হবে যে এটি ইনপুট সীমাটি ধরে রাখতে কমপক্ষে যথেষ্ট বড় একটি ব্যাপ্তিকে নির্দেশ করে।
std::back_inserter
একটি আউটপুট পুনরাবৃত্তি তৈরি করে যা push_back
প্রতিটি উপাদানটির জন্য একটি ধারককে কল করে, তাই প্রতিটি উপাদান পাত্রে sertedোকানো হয়। বিকল্পভাবে, আপনি std::vector
সীমাটি অনুলিপি করার জন্য পর্যাপ্ত পরিমাণে উপাদান তৈরি করতে পারতেন :
std::vector<double> output(input.size());
std::copy(input.begin(), input.end(), output.begin());
অথবা, আপনি std::vector
ব্যাপ্তি নির্মাণকারী ব্যবহার করতে পারেন :
std::vector<double> output(input.begin(), input.end());
assign()
:output.assign(input.begin(), input.end());