অ্যালোকেটর (সি++)
সি++ প্রোগ্রামিং ল্যাঙ্গুয়েজ এ, অ্যালোকেটর হল সি++ স্ট্যান্ডার্ড লাইব্রেরির গুরুত্বপূর্ণ অংশ। এই লাইব্রেরিটি লিস্ট এবং সেট এর মত আরও গুরুত্বপূর্ণ কিছু ডেটা স্ট্রাকচার প্রদান করে, সাধারণভাবে যাদের কন্টেইনার বলা হয়ে থাকে। এই কন্টেইনারগুলোর একটি সাধারণ ফিচার হচ্ছে রান টাইমে আকার পরিবর্তন করা, যা অর্জন করা হয় ডাইনামিক মেমরি অ্যালোকেশন এর মাধ্যমে। একটি কন্টেইনার এর মেমোরিতে স্থান নির্ধারণ এবং অপসারণ, অ্যালোকেটর পরিচালনা করে থাকে। সি++ স্ট্যান্ডার্ড লাইব্রেরি সাধারণ ব্যবহার্য অ্যালোকেটর প্রদান করে থাকে, আবার একজন প্রোগ্রামারও তার নিজস্ব অ্যালকেটর সরবরাহ করতে পারেন। সি++ স্ট্যান্ডার্ড স্ট্যান্ডার্ড লাইব্রেরির অংশ হিসেবে অ্যালেকজান্ডার স্টেপানভ অ্যালোকেটর উদ্ভাবন করেন। এর মূল উদ্দেশ্য ছিল লাইব্রেরিটিকে আরও সহজলভ্য এবং মুল মেমোরি মডেল থেকে স্বাধীন করা, যাতে প্রোগ্রামাররা লাইব্রেরির সাথে নিজস্ব পয়েন্টার এবং রেফারেন্স টাইপ ব্যবহার করতে পারেন। এস,টি,এল কে সি++ স্ট্যান্ডার্ডে গ্রহণ করার প্রক্রিয়ায়, সি++ মান নির্ধারণ পরিষদ উপলব্ধি করে যে, মেমোরি মডেলের পূর্ণ বিমূর্তণ অপ্রীতিকর কর্মসম্পাদন সাধন করতে পারে। এর বিহিত করার জন্য, অ্যালোকেটরের আবশ্যিকতা নিয়ন্ত্রণ করা হয়েছে। এর ফলে, স্টেপানভের প্রকৃত উদ্ভাবনের চেয়ে নিজস্ব অ্যালোকেটরের ব্যবহার অত্যন্ত সীমিত। তা সত্ত্বেও, কিছু ক্ষেত্রে নিজস্ব অ্যালোকেটরের ব্যবহারই কাম্য। নিজস্ব অ্যালোকেটর লেখার কিছু সাধারণ কারণ হল মেমোরি পুল ব্যবহার করে মেমোরিতে স্থান নির্ধারণের গতি উন্নতি করা, এবং বিভিন্ন ধরনের মেমোরির প্রবেশাধিকার সংরক্ষণ করা যেমন শেয়ারকৃত মেমোরি অথবা গারবেজ-সংগৃহীত মেমোরি। প্রকৃতপক্ষে, যেসকল প্রোগ্রাম স্বল্প মেমোরি বারংবার নির্ধারণ করে থাকে, সেগুলো বিশেষায়িত অ্যালোকেটর এর উপকারিতা লাভ করতে পারে রান টাইম এবং মেমোরি ফুটপ্রিন্ট এর ক্ষেত্রে।