কম্পিউটার

STL এবং C++ স্ট্যান্ডার্ড লাইব্রেরির মধ্যে পার্থক্য কী?


The Standard Template Library (STL) হল C++ প্রোগ্রামিং ভাষার জন্য একটি সফটওয়্যার লাইব্রেরি যা C++ স্ট্যান্ডার্ড লাইব্রেরির অনেক অংশকে প্রভাবিত করেছে। এটি অ্যালগরিদম, ধারক, ফাংশন এবং পুনরাবৃত্তিকারী নামে চারটি উপাদান সরবরাহ করে। উল্লেখ্য যে "STL" বা "স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি" শব্দটি ISO 14882 C++ স্ট্যান্ডার্ডে কোথাও দেখা যায় না। তাই C++ স্ট্যান্ডার্ড লাইব্রেরীকে STL হিসেবে উল্লেখ করা ভুল, অর্থাৎ, STL এবং C++ স্ট্যান্ডার্ড লাইব্রেরি 2টি ভিন্ন জিনিস এবং পূর্ববর্তীটি পরবর্তীটির উপসেট।

STL গঠিত

পাত্রে

STL-এ সিকোয়েন্স কন্টেইনার এবং অ্যাসোসিয়েটিভ কন্টেইনার রয়েছে। কন্টেইনারগুলি এমন বস্তু যা ডেটা সঞ্চয় করে। স্ট্যান্ডার্ড সিকোয়েন্স পাত্রে ভেক্টর, ডিক এবং তালিকা অন্তর্ভুক্ত। স্ট্যান্ডার্ড অ্যাসোসিয়েটিভ কন্টেনারগুলি হল সেট, মাল্টিসেট, ম্যাপ, মাল্টিম্যাপ, হ্যাশ_সেট, হ্যাশ_ম্যাপ, হ্যাশ_মাল্টিসেট এবং হ্যাশ_মাল্টিম্যাপ। এছাড়াও কন্টেইনার অ্যাডাপ্টার সারি, অগ্রাধিকার_সারি এবং স্ট্যাক রয়েছে, যেগুলি একটি নির্দিষ্ট ইন্টারফেস সহ কন্টেনার, বাস্তবায়ন হিসাবে অন্যান্য কন্টেইনার ব্যবহার করে।

Iterators

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

অ্যালগরিদম

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

C++ প্রোগ্রামিং ভাষায়, C++ স্ট্যান্ডার্ড লাইব্রেরি হল ক্লাস এবং ফাংশনের একটি সংগ্রহ, যেগুলি মূল ভাষাতে লেখা হয় এবং C++ ISO স্ট্যান্ডার্ডেরই অংশ। C++ স্ট্যান্ডার্ড লাইব্রেরি বেশ কিছু জেনেরিক কন্টেইনার, এই কন্টেইনারগুলিকে ব্যবহার ও পরিচালনা করার জন্য ফাংশন, ফাংশন অবজেক্ট, জেনেরিক স্ট্রিং এবং স্ট্রিম (ইন্টারেক্টিভ এবং ফাইল I/O সহ), কিছু ভাষার বৈশিষ্ট্যের জন্য সমর্থন এবং স্কোয়ার খোঁজার মতো দৈনন্দিন কাজের জন্য ফাংশন প্রদান করে। একটি সংখ্যার মূল নিচে C++ স্ট্যান্ডার্ড লাইব্রেরির কিছু বৈশিষ্ট্য রয়েছে -

স্ট্রীম

এই লাইব্রেরিগুলি C++ এ উপলব্ধ বিভিন্ন ধরনের স্ট্রীম মোকাবেলা করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি স্ট্রীম সাধারণত ফাইল স্ট্রীমকে প্রতিনিধিত্ব করে, এবং এই ক্লাসটি ফাইল তৈরি করতে, ফাইলগুলিতে তথ্য লিখতে এবং ফাইলগুলি থেকে তথ্য পড়তে ব্যবহার করা যেতে পারে, একটি স্ট্রিম একটি স্ট্রিং স্ট্রীমকে প্রতিনিধিত্ব করে এবং সাধারণত স্ট্রিংগুলি পরিচালনা করতে ব্যবহৃত হয়। পি>

পাত্রে

এটি ক্লাসের একটি সংগ্রহ যা বিভিন্ন ধরনের ডেটা যেমন ভেক্টর, সেট, ম্যাপ, স্ট্যাক, সারি, ইত্যাদিতে ডেটা সঞ্চয় করতে ব্যবহৃত হয়৷ এগুলি STL-এর একটি উপাদান৷

সাধারণ লাইব্রেরি

লাইব্রেরি যেমন অ্যালগরিদম, সময়ের জন্য Chrono, পুনরাবৃত্তিকারী, মেমরি, ইত্যাদি।

সংখ্যার লাইব্রেরি

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

থ্রেডিং

এটি একটি লাইব্রেরি যা C++ 11-এ চালু করা হয়েছে যেটি মূলত সঙ্গতি নিয়ে কাজ করে।

সি স্ট্যান্ডার্ড লাইব্রেরি

C স্ট্যান্ডার্ড লাইব্রেরি থেকে প্রতিটি হেডার C++ স্ট্যান্ডার্ড লাইব্রেরিতে একটি ভিন্ন নামে অন্তর্ভুক্ত করা হয়, .h অপসারণ করে এবং শুরুতে একটি 'c' যোগ করে তৈরি করা হয়; উদাহরণস্বরূপ, 'time.h' হয়ে যায় 'ctime'।


  1. সি ++ এ সের এবং ক্লগ স্ট্রিমের মধ্যে পার্থক্য কী?

  2. C++ এ ডট (.) অপারেটর এবং -> এর মধ্যে পার্থক্য কী?

  3. C++ এ #define এবং const কীওয়ার্ডের মধ্যে পার্থক্য কী?

  4. সি++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি (STL)