তালিকা হল এমন কন্টেইনারের ধরন যা ক্রমানুসারে ডেটা সঞ্চয় করে এবং উপাদানগুলিতে অসংলগ্ন মেমরি বরাদ্দ করে। C++-এ, তালিকাগুলিকে দ্বিগুণ লিঙ্কযুক্ত তালিকা হিসাবে বিবেচনা করা হয় যেখানে উপাদানগুলির সন্নিবেশ এবং মুছে ফেলা উভয় প্রান্ত থেকে করা যেতে পারে এবং তাই, উভয় প্রান্ত থেকে তালিকাটি অতিক্রম করাও সম্ভব। এককভাবে লিঙ্কযুক্ত তালিকা ব্যবহার করার জন্য আমরা C++ STL-এ উপলব্ধ ফরওয়ার্ড তালিকা ব্যবহার করি।
ভেক্টরের উপরে তালিকা ব্যবহার করার সুবিধা হল যে
যদি পুনরাবৃত্ত সঠিক উপাদানে অবস্থান করে তবে তালিকা ধারকটিতে উপলব্ধ উপাদানগুলির সন্নিবেশ এবং মুছে ফেলার ক্ষেত্রে তালিকা দ্রুত হয়৷
তালিকা ব্যবহার করার অসুবিধা হল যে
তালিকায় এটির অবস্থানের মাধ্যমে সরাসরি পাত্রে উপলব্ধ উপাদান আনা কঠিন। যেমন, যদি আমরা চতুর্থ উপাদানটি আনতে চাই তবে চতুর্থ উপাদানটিতে সরাসরি ঝাঁপ দেওয়া কঠিন হবে পরিবর্তে পুনরাবৃত্তিকারীকে শুরু বা শেষ অবস্থান থেকে সেখানে পৌঁছাতে হবে।
তালিকাগুলির সাথে যুক্ত ফাংশনগুলি হল
-
পুশ_ফ্রন্ট(উপাদান) - এই ফাংশনটি তালিকার শুরুতে উপাদান সন্নিবেশ করতে ব্যবহৃত হয়।
সিনট্যাক্স -listName.push_front(ডেটাটাইপ উপাদান)
প্যারামিটার - সন্নিবেশ করাতে মান হিসাবে এটি একটি প্যারামিটার লাগে৷
রিটার্ন মান - কোন রিটার্ন ভ্যালু নেই।
-
পুশ_ব্যাক(উপাদান) - এই ফাংশনটি তালিকার শেষে উপাদান সন্নিবেশ করতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.push_back(ডেটাটাইপ উপাদান)
প্যারামিটার - সন্নিবেশ করাতে মান হিসাবে এটি একটি প্যারামিটার লাগে৷
রিটার্ন মান - কোন রিটার্ন ভ্যালু নেই।
-
ঢোকান() - এই ফাংশনটি তালিকা কন্টেইনারে প্রদত্ত অবস্থানে উপাদান সন্নিবেশ করতে ব্যবহৃত হয়।
সিনট্যাক্স -:listName.insert(অবস্থান, মোট, উপাদান)
প্যারামিটার - এটি তিনটি প্যারামিটার লাগে -
-
অবস্থান, যেখানে উপাদান সন্নিবেশ করা প্রয়োজন
-
মোট, ঢোকানো উপাদানের মোট সংখ্যা নির্দিষ্ট করে
-
উপাদানটি সন্নিবেশিত করার উপাদানটিকে নির্দিষ্ট করে৷ ৷
-
-
রিটার্ন মান - নতুন সন্নিবেশিত উপাদানগুলির শুরুতে নির্দেশ করে পুনরাবৃত্তিকারী ফেরত দেয়৷
-
পপ_ফ্রন্ট() - এই ফাংশনটি তালিকার শুরু থেকে উপাদানটি সরাতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.pop_front()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - কোন রিটার্ন ভ্যালু নেই
-
সামনে() - এই ফাংশনটি তালিকার প্রথম উপাদান আনতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.front()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - এই ফাংশনটি প্রথম উপাদানের সরাসরি রেফারেন্স প্রদান করে
-
পপ_ব্যাক() - এই ফাংশনটি তালিকার শেষ থেকে উপাদানটি সরাতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName.pop_back()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - কোন রিটার্ন ভ্যালু নেই
-
ব্যাক() - এই ফাংশনটি তালিকার শেষ উপাদান আনতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.back()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - এই ফাংশনটি শেষ উপাদানের সরাসরি রেফারেন্স প্রদান করে
-
আকার() - এই ফাংশনটি তালিকার উপাদানগুলির মোট সংখ্যা আনতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName.size()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - এই ফাংশনটি তালিকায় মোট উপাদানের সংখ্যা প্রদান করে।
-
আকার পরিবর্তন() - এই ফাংশনটি তালিকার উপাদানগুলির মোট সংখ্যার আকার পরিবর্তন করতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName.resize(int resized_number, value(ঐচ্ছিক))
প্যারামিটার - এটি দুটি প্যারামিটার লাগে
-
resized_number - সঠিক সংখ্যা যে পর্যন্ত কন্টেইনারের আকার বাড়ানো বা কমানো হবে
-
মান (ঐচ্ছিক) - এটি একটি ঐচ্ছিক পরামিতি যা উপাদানের শেষে নির্দিষ্ট মান যোগ করবে।
-
-
রিটার্ন মান -:কোনো রিটার্ন মান নেই।
-
সর্বোচ্চ_সাইজ() - এই ফাংশনটি একটি তালিকায় থাকতে পারে এমন সর্বাধিক সংখ্যক উপাদান আনতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName.max_size()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - এই ফাংশনটি একটি তালিকায় থাকতে পারে এমন সর্বাধিক সংখ্যক উপাদান প্রদান করে৷
-
ক্লিয়ার()৷ - এই ফাংশনটি তালিকা থেকে সমস্ত উপাদান মুছে ফেলতে এবং এর আকার 0 এ পুনরায় সেট করতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.max_size()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - কোন রিটার্ন ভ্যালু নেই।
-
সরান(উপাদান) - এই ফাংশনটি প্যারামিটারে পাস করা উপাদানের সাথে মিলে যাওয়া সমস্ত উপাদান মুছে ফেলতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName.remove(element)
প্যারামিটার - এটি একক প্যারামিটার লাগে যা তালিকার ধারক থেকে মুছে ফেলার উপাদানটি নির্দিষ্ট করে৷
রিটার্ন মান - কোন রিটার্ন ভ্যালু নেই।
-
Remove_if(ফাংশন পয়েন্টার/ফাংশন অবজেক্ট) - এই ফাংশনটি একটি প্যারামিটারে পাস করা শর্তের উপর ভিত্তি করে প্যারামিটারে পাস করা উপাদানের সাথে মিলে যাওয়া সমস্ত উপাদান মুছে ফেলার জন্য ব্যবহার করা হয়।
সিনট্যাক্স - listName.remove_if(ফাংশন পয়েন্টার/ফাংশন অবজেক্ট)
প্যারামিটার - এটি ফাংশন পয়েন্টার বা ফাংশন অবজেক্ট হিসাবে একক প্যারামিটার নেয়৷
রিটার্ন মান - যখন সমস্ত উপাদান মুছে ফেলা হয় তখন এটি সত্য হয়৷
-
মুছুন() - এই ফাংশনটি এটিতে পাস করা প্যারামিটারের উপর নির্ভর করে একক উপাদানের পাশাপাশি একাধিক উপাদান মুছে ফেলতে ব্যবহৃত হয়
সিনট্যাক্স -:iterator listName.erase(iterator position)iterator listName.erase(iterator First_ele, iterator Last_ele)
প্যারামিটার - প্রথম সিনট্যাক্সে, এটি প্যারামিটার অবস্থান নেয় যা তালিকার ধারক থেকে উপাদানটি মুছে ফেলা হবে এমন অবস্থান নির্দিষ্ট করে। দ্বিতীয় সিনট্যাক্সে, এটি প্যারামিটার প্রথম উপাদান এবং শেষ উপাদান নেয় যা উপাদানগুলি যেখান থেকে মুছে ফেলা হবে তা নির্দিষ্ট করে।
রিটার্ন মান - এটি শেষ মুছে ফেলা উপাদানের দিকে নির্দেশ করে একটি পুনরাবৃত্তিকারী প্রদান করে।
-
খালি() - তালিকাটি খালি আছে কি না তা পরীক্ষা করতে এই ফাংশনটি ব্যবহার করা হয়৷
সিনট্যাক্স - listName.empty()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান -
-
সত্য প্রত্যাবর্তন - যখন তালিকা খালি হয়
-
মিথ্যা ফেরত দিন - যখন তালিকা খালি না থাকে।
-
-
শুরু() - এই ফাংশনটি একটি পুনরাবৃত্তিকারী প্রদান করে যা তালিকার প্রথম উপাদানটিকে নির্দেশ করে।
সিনট্যাক্স - listName.begin()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি পুনরাবৃত্তিকারী প্রদান করে যা তালিকার প্রথম উপাদানটিকে নির্দেশ করে।
-
শেষ() - এই ফাংশনটি একটি পুনরাবৃত্তিকারী প্রদান করে যা তালিকার শেষ উপাদানটিকে নির্দেশ করে।
সিনট্যাক্স - listName.end()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি পুনরাবৃত্তিকারী প্রদান করে যা তালিকার শেষ উপাদানটিকে নির্দেশ করে।
rbegin() - এই ফাংশনটি একটি বিপরীত পুনরাবৃত্তিকারী প্রদান করে যা তালিকার শেষ উপাদানটিকে নির্দেশ করে।
সিনট্যাক্স - listName.rbegin()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি বিপরীত পুনরাবৃত্তিকারী প্রদান করে যা তালিকার শেষ উপাদানটিকে নির্দেশ করে। -
রিন্ড() - এই ফাংশনটি একটি বিপরীত পুনরাবৃত্তিকারী প্রদান করে যা তালিকার প্রথম উপাদানটিকে নির্দেশ করে।
সিনট্যাক্স - listName.rend()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি বিপরীত পুনরাবৃত্তিকারী প্রদান করে যা তালিকার প্রথম উপাদানটিকে নির্দেশ করে।
-
Cbegin() - এই ফাংশনটি একটি ধ্রুবক র্যান্ডম অ্যাক্সেস ইটারেটর প্রদান করে যা তালিকার শুরুতে নির্দেশ করে৷
সিনট্যাক্স - listName.cbegin()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি ধ্রুবক র্যান্ডম-অ্যাক্সেস পুনরাবৃত্তিকারী ফেরত দেয় যা তালিকার শুরুতে নির্দেশ করে।
-
Cend() - − এই ফাংশনটি একটি ধ্রুবক এলোমেলো অ্যাক্সেস পুনরাবৃত্তিকারী ফেরত ব্যবহার করা হয় যা তালিকার শেষে নির্দেশ করে৷
সিনট্যাক্স - listName.cend()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি ধ্রুবক র্যান্ডম-অ্যাক্সেস পুনরাবৃত্তিকারী ফেরত দেয় যা তালিকার শেষ দিকে নির্দেশ করে।
-
Crbegin() - এই ফাংশনটি একটি ধ্রুবক র্যান্ডম অ্যাক্সেস রিভার্স ইটারেটর ফেরত ব্যবহার করা হয় যা তালিকার শেষ দিকে নির্দেশ করে৷
সিনট্যাক্স - listName.crbegin()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি ধ্রুবক র্যান্ডম অ্যাক্সেস রিভার্স ইটারেটর প্রদান করে যা তালিকার শেষ দিকে নির্দেশ করে।
-
Crend() - এই ফাংশনটি একটি ধ্রুবক র্যান্ডম অ্যাক্সেস রিভার্স ইটারেটর ফেরত ব্যবহার করা হয় যা তালিকার শুরুতে নির্দেশ করে।
সিনট্যাক্স - listName.crend()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - একটি ধ্রুবক র্যান্ডম অ্যাক্সেস রিভার্স ইটারেটর প্রদান করে যা তালিকার শুরুতে নির্দেশ করে।
-
বিপরীত() - এই ফাংশনটি তালিকার পাত্রে থাকা সমস্ত উপাদানের বিপরীতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.reverse()
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - কোনো রিটার্ন মান নেই
-
অনন্য() - এই ফাংশনটি তালিকা থেকে সমস্ত ডুপ্লিকেট ধারাবাহিক উপাদানগুলি সরাতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName.unique (প্রেডিকেট যে দুটি মানকে একই বলে মনে করে)
প্যারামিটার - এটি ঐচ্ছিক প্যারামিটার লাগে যা সত্য ফেরত দেয় যখন দুটি উপাদানকে একই হিসাবে বিবেচনা করা প্রয়োজন৷
রিটার্ন মান - কোনো রিটার্ন মান নেই
-
emplace() - এই ফাংশনটি প্রদত্ত অবস্থানে নতুন উপাদান সন্নিবেশ করতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.emplace(অবস্থান, মান)
প্যারামিটার - এটি দুটি প্যারামিটার লাগে, একটি যে অবস্থানটি নির্দিষ্ট করে যেটিতে উপাদানটি সন্নিবেশ করা দরকার এবং অন্যটি উপাদানটির মান যা সন্নিবেশ করা দরকার তা বলে৷
রিটার্ন মান - একটি পুনরাবৃত্তিকারী ফেরত দেয় যা নতুন সন্নিবেশিত উপাদানের দিকে নির্দেশ করে।
-
Emplace_front() - এই ফাংশনটি তালিকার শুরুতে নতুন উপাদান সন্নিবেশ করতে ব্যবহৃত হয়।
সিনট্যাক্স - listName.emplace_front(এলিমেন্ট)
প্যারামিটার - এটি একটি প্যারামিটার লাগে যা সন্নিবেশিত করার মান নির্দিষ্ট করে
রিটার্ন মান - কোন রিটার্ন মান নেই।
-
Emplace_back() - এই ফাংশনটি তালিকার শেষে নতুন উপাদান সন্নিবেশ করতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName.emplace_back(উপাদান)
প্যারামিটার - এটি একটি প্যারামিটার লাগে যা সন্নিবেশিত করার মান নির্দিষ্ট করে
রিটার্ন মান - কোন রিটার্ন মান নেই।
-
অপারেটর(=) - এই অপারেটরটি একটি তালিকার বিষয়বস্তু অন্য তালিকা দ্বারা প্রতিস্থাপন করতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName_1 =listName_2
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - কোন রিটার্ন মান নেই।
-
অদলবদল() - এই ফাংশনটি একটি তালিকার বিষয়বস্তুকে একই ধরণের অন্য তালিকার সাথে অদলবদল করতে ব্যবহৃত হয়
সিনট্যাক্স - listName_1.swap(listName_2)
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - কোন রিটার্ন মান নেই।
-
একত্রিত করুন() - এই ফাংশনটি উপাদানগুলিকে দুটি তালিকায় মার্জ করতে ব্যবহৃত হয়৷
সিনট্যাক্স - listName_1.merge(listName_2)
প্যারামিটার - কোন প্যারামিটার নেই
রিটার্ন মান - কোন রিটার্ন মান নেই।