STL (Standard Template Library) হলো C++-এর জন্য একটি সফ্টওয়্যার লাইব্রেরি যা C++ স্ট্যান্ডার্ড লাইব্রেরির অনেক অংশকে প্রভাবিত করেছে। কিন্তু STL এবং C++ স্ট্যান্ডার্ড লাইব্রেরি একই নয়।
STL-এর চারটি প্রধান কম্পোনেন্ট
কন্টেইনার (Containers)
ডেটা সংরক্ষণের অবজেক্ট। সিকোয়েন্স কন্টেইনার: vector, deque, list। অ্যাসোসिएটিভ কন্টেইনার: set, map, multiset, multimap। কন্টেইনার অ্যাডাপ্টার: queue, stack, priority_queue।
ইটেরেটর (Iterators)
কন্টেইনার ট্রাভার্স করার অবজেক্ট। পাঁচ ধরনের: ইনপুট, আউটপুট, ফরওয়ার্ড, বাইডিরেকশনাল, র্যান্ডম অ্যাক্সেস।
অ্যালগরিদম (Algorithms)
র্যাঞ্জ-ভিত্তিক ফাংশন: sort, binary_search, min_element ইত্যাদি। টেমপ্লেট-ভিত্তিক হওয়ায় যেকোনো ডেটা টাইপে কাজ করে।
ফাংশন অবজেক্ট (Functors)
ফাংশন হিসেবে ব্যবহারযোগ্য অবজেক্ট।
C++ স্ট্যান্ডার্ড লাইব্রেরি
ISO C++ স্ট্যান্ডার্ডের অংশ। STL-এর পাশাপাশি এবং অনেক কিছুই অন্তর্ভুক্ত করে:
- Streams: I/O (
iostream,fstream,sstream) - Strings:
std::string - Numerics:
complex,random,valarray - Threading:
thread,mutex,atomic(C++11) - C Standard Library:
cstdio,ctime,cmathইত্যাদি
সারসংক্ষেপ: STL ⊂ C++ Standard Library। STL শুধু কন্টেইনার, ইটেরেটর, অ্যালগরিদম, ফাংশন অবজেক্ট।