কম্পিউটার টিউটোরিয়াল

C++ স্ট্যান্ডার্ড লাইব্রেরি হেডার ফাইলসমূহ


C++ স্ট্যান্ডার্ড লাইব্রেরি বিভিন্ন ধরনের লাইব্রেরি সমষ্টি। নিচে এই সব টাইপের তালিকা এবং তাদের অধীনে থাকা লাইব্রেরিগুলো দেওয়া হলো।

ইউটিলিটি লাইব্রেরি

<cstdlib> - প্রোগ্রাম কন্ট্রোল, ডাইনামিক মেমরি এলোকেশন, র‍্যান্ডম নাম্বার, সোর্ট এবং সার্চের মতো জেনারেল পারপাস ইউটিলিটি

<csignal> - সিগন্যাল ম্যানেজমেন্টের জন্য ফাংশন এবং ম্যাক্রো কনস্ট্যান্ট (যেমন SIGINT, ইত্যাদি)

<csetjmp> - এক্সিকিউশন কন্টেক্সট সেভ (এবং জাম্প) করার ম্যাক্রো (এবং ফাংশন)

<cstdarg> - ভেরিয়েবল লেনথ আর্গুমেন্ট লিস্ট হ্যান্ডলিং

<typeinfo> - রানটাইম টাইপ ইনফরমেশন ইউটিলিটি

<bitset> - std::bitset ক্লাস টেমপ্লেট

<functional> - ফাংশন অবজেক্ট, ফাংশন ইনভোকেশন, বাইন্ড অপারেশন এবং রেফারেন্স র‍্যাপার

<utility> - বিভিন্ন ইউটিলিটি কম্পোনেন্ট

<ctime> - C-স্টাইল টাইম/ডেট ইউটিলিটি

<cstddef> - স্ট্যান্ডার্ড ম্যাক্রো এবং typedef

<typeindex> (since C++11) - একটি type_info অবজেক্টের র‍্যাপার, যা অ্যাসোসিয়েটিভ এবং আনঅর্ডার্ড অ্যাসোসিয়েটিভ কন্টেইনারে ইনডেক্স হিসেবে ব্যবহার করা যায়

<type_traits> (since C++11) - কম্পাইল-টাইম টাইপ ইনফরমেশন

<chrono> (since C++11) - C++ টাইম ইউটিলিটি

<initializer_list> (since C++11) - const T টাইপের অবজেক্টের একটি অ্যারে-এ অ্যাক্সেস প্রদান করা একটি লাইটওয়েট প্রক্সি অবজেক্ট ডিফাইনকারী লাইব্রেরি

<tuple> (since C++11) - হেটেরোজিনাস ভ্যালুদের একটি ফিক্সড-সাইজ কালেকশন ডিফাইনকারী লাইব্রেরি। এটি std::pair-এর জেনারেলাইজেশন।

<any> (since C++17) - any ক্লাস যেকোনো টাইপের একক ভ্যালুর জন্য টাইপ-সেফ কন্টেইনার বর্ণনা করে।

<optional> (since C++17) - std::optional ক্লাস টেমপ্লেট একটি অপশনাল কন্টেইনড ভ্যালু ম্যানেজ করে, অর্থাৎ একটি ভ্যালু যা থাকতে পারে বা নাও থাকতে পারে।

<variant> (since C++17) - std::variant ক্লাস টেমপ্লেট একটি টাইপ-সেফ ইউনিয়ন রিপ্রেজেন্ট করে। std::variant-এর একটি ইনস্ট্যান্স যেকোনো সময় তার অল্টারনেটিভ টাইপগুলোর একটি মান ধারণ করে অথবা এরর কেসে - কোনো মান নেই।

<compare> (since C++20) - থ্রি-ওয়ে কমপারিজন অপারেটর সাপোর্ট অনুমতি দেয়

ডাইনামিক মেমরি ম্যানেজমেন্ট

<new> - লো-লেভেল মেমরি ম্যানেজমেন্ট ইউটিলিটি। নিউ-এক্সপ্রেশন একমাত্র উপায় একটি অবজেক্ট বা অবজেক্টের অ্যারে ডাইনামিক স্টোরেজ ডুরেশন দিয়ে তৈরি করার, অর্থাৎ লাইফটাইম যেটি যে স্কোপে তৈরি হয়েছে সেটি দিয়ে সীমাবদ্ধ নয়।

<memory> - হাইয়ার লেভেল মেমরি ম্যানেজমেন্ট ইউটিলিটি

<scoped_allocator> (since C++11) - std::scoped_allocator_adaptor ক্লাস টেমপ্লেট একটি অ্যালোকেটর যা মাল্টিলেভেল কন্টেইনারসহ (ভেক্টর অফ সেটস অফ লিস্টস অফ টাপলস অফ ম্যাপস, ইত্যাদি) ব্যবহার করা যাবে।

<memory_resource> (since C++17) - std::pmr::memory_resource ক্লাস একটি অ্যাবস্ট্রাক্ট ইন্টারফেস একটি অনবাউন্ডেড সেট অফ ক্লাসকে রিপ্রেজেন্ট করে যা মেমরি রিসোর্স এনক্যাপসুলেট করে।

নামেরিক লিমিটস

<climits> - ইন্টিগ্রাল টাইপের লিমিটস

<cfloat> - ফ্লোট টাইপের লিমিটস

<limits> - আর্থমেটিক টাইপের প্রোপার্টি কোয়েরি করার স্ট্যান্ডার্ডাইজড উপায়

<cstdint> (since C++11) - ফিক্সড-সাইজ টাইপ এবং অন্যান্য টাইপের লিমিটস

<cinttypes> (since C++11) - C বাইট এবং واয়ড স্ট্রিং থেকে std::intmax_t এবং std::uintmax_t-এ কনভার্সন প্রদান করে, কিছু ম্যাথ ফাংশন std::intmax_t-এ ওভারলোড করে এবং <cstdint>-এ ডিক্লেয়ার করা টাইপের জন্য C-স্টাইল ইনপুট/আউটপুট ফরম্যাট ম্যাক্রো প্রদান করে।

এরর হ্যান্ডলিং

<exception> - এক্সসেপশন হ্যান্ডলিং ইউটিলিটি

<stdexcept> - স্ট্যান্ডার্ড এক্সসেপশন অবজেক্ট

<cassert> - কন্ডিশনালি কম্পাইল্ড ম্যাক্রো যা তার আর্গুমেন্টকে শূন্যের সাথে তুলনা করে

<cerrno> - লাস্ট এরর নাম্বার ধারণকারী ম্যাক্রো

<system_error> (since C++11) - std::error_code একটি প্ল্যাটফর্ম-ডিপেনডেন্ট এরর কোড। প্রতিটি std::error_code অবজেক্ট একটি অপারেটিং সিস্টেম বা কিছু লো-লেভেল ইন্টারফেস থেকে উদ্ভূত একটি এরর কোড ধারণ করে এবং একটি std::error_category টাইপের অবজেক্টের পয়েন্টার যা উক্ত ইন্টারফেসের সাথে αντίপাতします।

স্ট্রিংস লাইব্রেরি

<cctype> - ক্যারেক্টার ডেটাতে থাকা টাইপ নির্ধারণের ফাংশন

<cwctype> - واয়ড ক্যারেক্টার ডেটাতে থাকা টাইপ নির্ধারণের ফাংশন

<cstring> - বিভিন্ন ন্যারো ক্যারেক্টার স্ট্রিং হ্যান্ডলিং ফাংশন

<cwchar> - বিভিন্ন واয়ড এবং মাল্টিবাইট স্ট্রিং হ্যান্ডলিং ফাংশন

<string> - std::basic_string ক্লাস টেমপ্লেট

<cuchar> (since C++11) - C-স্টাইল ইউনিকোড ক্যারেক্টার কনভার্সন ফাংশন

<string_view> (since C++17) - basic_string_view ক্লাস টেমপ্লেট একটি অবজেক্ট বর্ণনা করে যা char-লাইক অবজেক্টের একটি কনস্ট্যান্ট কন্টিগুয়াস সিকোয়েন্সকে রেফার করতে পারে যার প্রথম এলিমেন্ট পজিশন শূন্যে থাকে।

কন্টেইনারস লাইব্রেরি

<array> (since C++11) - std::array কন্টেইনার

<vector> - std::vector কন্টেইনার

<deque> - std::deque কন্টেইনার

<list> - std::list কন্টেইনার

<forward_list> (since C++11) - std::forward_list কন্টেইনার

<set> - std::set এবং std::multiset অ্যাসোসিয়েটিভ কন্টেইনার

<map> - std::map এবং std::multimap অ্যাসোসিয়েটিভ কন্টেইনার

<unordered_set> (since C++11) - std::unordered_set এবং std::unordered_multiset আনঅর্ডার্ড অ্যাসোসিয়েটিভ কন্টেইনার

<unordered_map> (since C++11) - std::unordered_map এবং std::unordered_multimap আনঅর্ডার্ড অ্যাসোসিয়েটিভ কন্টেইনার

<stack> - std::stack কন্টেইনার অ্যাডাপ্টর

<queue> - std::queue এবং std::priority_queue কন্টেইনার অ্যাডাপ্টর

অ্যালগরিদমস লাইব্রেরি

<algorithm> - কন্টেইনারগুলোর ওপর অপারেট করার অ্যালগরিদম থাকে

<execution> (C++17) - অ্যালগরিদমের প্যারালেল ভার্সনের জন্য প্রিডিফাইনড এক্সিকিউশন পলিসি

ইটারেটরস লাইব্রেরি

<iterator> - কন্টেইনারগুলোর জন্য ইটারেটর

নামেরিকস লাইব্রেরি

<cmath> - সাধারণ গণিত ফাংশন

<complex> - কমপ্লেক্স নাম্বার টাইপ

<valarray> - ভ্যালুদের অ্যারে রিপ্রেজেন্ট এবং ম্যানিপুলেট করার ক্লাস

<random> (since C++11) - র‍্যান্ডম নাম্বার জেনারেটর এবং ডিস্ট্রিবিউশন

<numeric> - কন্টেইনারগুলোর ভ্যালুগুলোর ওপর নামেরিক অপারেশন

<ratio> (since C++11) - কম্পাইল-টাইম র‍্যাশনাল আর্থমেটিক

<cfenv> (since C++11) - ফ্লোটিং-পয়েন্ট এনভায়রনমেন্ট অ্যাক্সেস ফাংশন

ইনপুট/আউটপুট লাইব্রেরি

<iosfwd> - ইনপুট/আউটপুট লাইব্রেরির সকল ক্লাসের ফরওয়ার্ড ডিক্লেয়ারেশন

<ios> - std::ios_base ক্লাস, std::basic_ios ক্লাস টেমপ্লেট এবং অনেক typedef

<istream> - std::basic_istream ক্লাস টেমপ্লেট এবং nhiều typedef

<ostream> - std::basic_ostream, std::basic_iostream ক্লাস টেমপ্লেট এবং অনেক typedef

<iostream> - কয়েকটি স্ট্যান্ডার্ড স্ট্রিম অবজেক্ট

<fstream> - std::basic_fstream, std::basic_ifstream, std::basic_ofstream ক্লাস টেমপ্লেট এবং অনেক typedef

<sstream> - std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream ক্লাস টেমপ্লেট এবং অনেক typedef

<syncstream> (since C++20) - std::basic_osyncstream, std::basic_syncbuf, এবং typedef

<strstream> (deprecated) - std::strstream, std::istrstream, std::ostrstream

<iomanip> - ইনপুট এবং আউটপুটের ফরম্যাট কন্ট্রোল করার হেল্পার ফাংশন

<streambuf> - std::basic_streambuf ক্লাস টেমপ্লেট

<cstdio> - C-স্টাইল ইনপুট-আউটপুট ফাংশন

লোকালাইজেশন লাইব্রেরি

<locale> - লোকালাইজেশন ইউটিলিটি

<clocale> - C লোকালাইজেশন ইউটিলিটি

<codecvt> (since C++11) (deprecated in C++17) - ইউনিকোড কনভার্সন ফ্যাসিলিটি

রেগুলার এক্সপ্রেশনস লাইব্রেরি

<regex> (since C++11) - রেগুলার এক্সপ্রেশন প্রসেসিং সাপোর্ট করার ক্লাস, অ্যালগরিদম এবং ইটারেটর

অটোমিক অপারেশনস লাইব্রেরি

<atomic> (since C++11) - অ্যাটোমিক অপারেশনস লাইব্রেরি

থ্রেড সাপোর্ট লাইব্রেরি

<thread> (since C++11) - std::thread ক্লাস এবং সাপোর্টিং ফাংশন

<mutex> (since C++11) - মিউচুয়াল এক্সক্লুশন প্রিমিটিভ

<shared_mutex> (since C++14) - শেয়ার্ড মিউচুয়াল এক্সক্লুশন প্রিমিটিভ

<future> (since C++11) - অ্যাসিনক্রোনাস কম্পিউটেশনের জন্য প্রিমিটিভ

<condition_variable> (since C++11) - থ্রেড ওয়েটিং কন্ডিশন

ফাইলসিস্টেম লাইব্রেরি

<filesystem> (since C++17) - std::path ক্লাস এবং সাপোর্টিং ফাংশন

  1. সি++-এ লোয়ার বাউন্ড (Lower bound in C++)

  2. সি++-এ std::sort()-এর ইন্টারনাল ডিটেইলস (Internal details of std::sort() in C++)

  3. C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি (STL)-এ বাইনারি সার্চ

  4. C++ STL-এ প্রায়োরিটি কিউ (Priority Queue)