সরাসরি উত্তর:
আমরা পাবলিক সদস্য ফাংশন ব্যবহার করতে পারেন std::vector::operator=
পাত্রের std::vector
অন্য একটি ভেক্টর থেকে মানগুলি নির্ধারণের জন্য।
- কনস্ট্রাক্টর ফাংশন ব্যবহার করুন
তদ্ব্যতীত, একটি কন্সট্রাক্টর ফাংশনটিও বোধগম্য হয়। প্যারামিটার হিসাবে অন্য ভেক্টরের সাথে একটি কনস্ট্রাক্টর ফাংশন (উদাঃ x
) x
একই ক্রমে প্রতিটি উপাদানগুলির একটি অনুলিপি সহ একটি ধারক তৈরি করে ।
সতর্ক করা:
- ব্যবহার করবেন না
std::vector::swap
std::vector::swap
অন্য কোনও ভেক্টরকে অনুলিপি করছে না , এটি প্রকৃতপক্ষে দুটি ভেক্টরের উপাদানগুলি অদলবদল করছে, এর নাম অনুসারে। অন্য কথায়, উত্স ভেক্টর থেকে অনুলিপি করার পরে সংশোধন করা std::vector::swap
হয়, যা সম্ভবত আপনি প্রত্যাশিত হন না।
উত্স ভেক্টরের উপাদানগুলি যদি অন্য ডেটারে পয়েন্টার হয় তবে কখনও কখনও একটি গভীর অনুলিপি চাওয়া হয়।
উইকিপিডিয়া অনুসারে:
একটি গভীর অনুলিপি, যার অর্থ ক্ষেত্রগুলি বিন্যস্ত করা হয়েছে: অনুলিপি করা অবজেক্টগুলির রেফারেন্সের পরিবর্তে কোনও রেফারেন্সযুক্ত বস্তুর জন্য নতুন অনুলিপি অবজেক্ট তৈরি করা হয়েছে, এবং এইগুলিতে বি স্থাপন করা হয়েছে to
আসলে, ডিপ অনুলিপি করার জন্য বর্তমানে সি ++ তে কোনও অন্তর্নির্মিত উপায় নেই। উপরে উল্লিখিত সমস্ত উপায় অগভীর। যদি একটি গভীর অনুলিপি প্রয়োজন হয়, আপনি কোনও ভেক্টরকে অতিক্রম করতে পারেন এবং ম্যানুয়ালি উল্লেখগুলির অনুলিপি তৈরি করতে পারেন। বিকল্পভাবে, একটি পুনরুক্তি ট্রভারিংয়ের জন্য বিবেচনা করা যেতে পারে। পুনরুক্তিকারী সম্পর্কে আলোচনা এই প্রশ্নের বাইরে beyond
তথ্যসূত্র
std::vector
সিপি্লুপ্লাস.কম এর পৃষ্ঠা