আপনার একটি ব্যবহার করতে হবে 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());