আমি এই পৃষ্ঠাটি দিয়ে গিয়েছিলাম তবে আমি এর কারণটি পাই না। সেখানে উল্লেখ করা হয়েছে যে
"একেবারেই কোনও মূল্য না ফেরানো এবং সারির সামনের দিকে মূল্য পরীক্ষা করার জন্য ক্লায়েন্টদের সামনে () ব্যবহার করার পক্ষে এটি আরও বোধগম্য"
তবে সামনে () থেকে কোনও উপাদান পরিদর্শন করার জন্যও সেই উপাদানটিকে লভ্যালুতে অনুলিপি করা প্রয়োজন। এই কোড বিভাগে উদাহরণস্বরূপ
std::queue<int> myqueue;
int myint;
int result;
std::cin >> myint;
myqueue.push (myint);
/ * এখানে আরএইচএসে অস্থায়ী তৈরি করা হবে যা ফলাফলের জন্য নির্ধারিত হবে এবং যদি রেফারেন্স অনুসারে রিটার্ন আসে তবে পপ অপারেশনের পরে ফলাফলটি অবৈধ রেন্ডার হবে * /
result = myqueue.front(); //result.
std::cout << ' ' << result;
myqueue.pop();
পঞ্চম লাইনে cout অবজেক্ট প্রথমে myqueue.front () এর একটি অনুলিপি তৈরি করে তারপরে ফলাফলটি নির্ধারিত করে। সুতরাং, পার্থক্য কি, পপ ফাংশন একই জিনিস করতে পারে।
front()
জন্যও সেই উপাদানটির মূল্য কপি করা দরকার" - না এটি তা করে না। front
একটি রেফারেন্স দেয়, কোনও মান দেয় না। এটি অনুলিপি না করে আপনি যে মানটি উল্লেখ করেছেন তা পরীক্ষা করতে পারেন।
pop()
। আপনি যদি ব্যবহার করেন std::queue<T, std::list<T>>
তবে এ front()
দ্বারা অবৈধ হওয়া থেকে সরবরাহ করা রেফারেন্স সম্পর্কে কোনও উদ্বেগ নেই push()
। তবে আপনাকে অবশ্যই আপনার ব্যবহারের ধরণটি জানতে হবে এবং আপনার সীমাবদ্ধতাগুলি ডকুমেন্ট করা উচিত।
void std::queue::pop();
)।