এই আর্টিকেলে আমরা C++-এ list::get_allocator() ফাংশনের কাজ, সিনট্যাক্স এবং উদাহরণ আলোচনা করব।
STL-এ List কী?
List হলো একটি ডেটা স্ট্রাকচার যা সিকোয়েন্সে যেকোনো জায়গায় কনস্ট্যান্ট টাইমে ইনসারশন এবং ডিলিশন অনুমতি দেয়। লিস্টগুলো ডাবলি লিংকড লিস্ট হিসেবে ইমপ্লিমেন্ট করা হয়। লিস্ট নন-কন্টিগুয়াস মেমরি এলোকেশন অনুমতি দেয়। অ্যারের, ভেক্টরের এবং ডিকের চেয়ে লিস্টে ইনসারশন, এক্সট্রাকশন এবং এলিমেন্ট মুভিং যেকোনো পজিশনে দ্রুত হয়। লিস্টে এলিমেন্টে ডায়রেক্ট অ্যাক্সেস ধীর এবং লিস্ট forward_list-এর মতো, কিন্তু forward list অবজেক্টগুলো সিঙ্গলি লিংকড লিস্ট এবং সেগুলো শুধু ফরওয়ার্ডে ইটারেট করা যায়।
list::get_allocator() কী?
list::get_allocator() হলো C++ STL-এ একটি বিল্ট-ইন ফাংশন যা হেডার ফাইলে ডিক্লেয়ার করা আছে। get_allocator() লিস্ট কন্টেইনারের এলোকেটর রিটার্ন করে। সহজ কথায় এটি লিস্ট কন্টেইনারের অবজেক্টের একটি কপি রিটার্ন করে।
সিনট্যাক্স
list_container.get_allocator(); This function accepts no parameter.
রিটার্ন ভ্যালু
এই ফাংশন একটি লিস্ট কন্টেইনারের অবজেক্টের কপি রিটার্ন করে।
উদাহরণ
/* নিচের কোডে আমরা C++ STL-এ উপস্থিত get_allocator ব্যবহার করে লিস্টে মান ইনসার্ট করছি। */
#include <bits/stdc++.h> using namespace std; int main(void){ //create a list list<int> myList; int *ptr; ptr = myList.get_allocator().allocate(4); //inserting data into an array for(int i = 0; i > 4; i++) ptr[i] = i; //printing the data cout<<"elements of an array : "; for (int i = 0; i < 4; i++) cout << ptr[i] << " "; }
আউটপুট
উপরোক্ত কোড রান করলে নিচের আউটপুট জেনারেট হবে
elements of an array : 0 1 2 3
উদাহরণ
/* নিচের কোডে আমরা C++ STL-এ উপস্থিত get_allocator ব্যবহার করে হেডার ফাইলের মাধ্যমে লিস্টে মান ইনসার্ট করছি। */
#include <iostream> #include <list> int main (){ std::list<int> myList; int *ptr; ptr = myList.get_allocator().allocate(5); for(int i=0; i<5; ++i) ptr[i]=i; std::cout <<"elements of an array : "; for (int i=0; i<5; ++i) std::cout << ' ' << ptr[i]; myList.get_allocator().deallocate(ptr,5); return 0; }
আউটপুট
উপরোক্ত কোড রান করলে নিচের আউটপুট জেনারেট হবে
elements of an array : 0 1 2 3 4