এসটিএল ইন সি ++: আপনার জানা দরকার Everything

এই নিবন্ধটি আপনাকে সি ++ তে এসটিএল সম্পর্কিত একটি বিশদ এবং বিস্তৃত জ্ঞান সরবরাহ করবে এবং বিভিন্ন ধারক সম্পর্কেও আপনাকে ধারণা দেবে।

স্ট্যান্ডার্ড টেম্পলেট লাইব্রেরি (এসটিএল) হ'ল সি ++ টেম্পলেট ক্লাসগুলির একটি সেট যা সাধারণ প্রোগ্রামিং ডেটা স্ট্রাকচার এবং ফাংশন সরবরাহ করে যেমন তালিকা, স্ট্যাকস, অ্যারে ইত্যাদি provide



সিটি ++ এ এসটিএলে এই নিবন্ধটি নিয়ে চলছে



সি ++ টেম্পলেট

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

সিটি ++ এ এসটিএলে এই নিবন্ধটি নিয়ে চলছে



জেনেরিক ফাংশন এবং এসটিএল

অনেক সময় প্রোগ্রাম করার সময় একই ক্রিয়াকলাপ সম্পাদন করে তবে বিভিন্ন ডেটা ধরণের সাথে কাজ করে এমন ফাংশন তৈরি করার প্রয়োজন হয়। সুতরাং এই সমস্যাটি কাটিয়ে উঠতে সি ++ অনেকগুলি ফাংশনের পরিবর্তে একটি একক জেনেরিক ফাংশন তৈরি করতে একটি বৈশিষ্ট্য সরবরাহ করে যা টেমপ্লেট প্যারামিটার ব্যবহার করে বিভিন্ন ডেটা টাইপের সাথে কাজ করতে পারে। এই জেনেরিক ক্লাস এবং ফাংশনগুলির সংগ্রহকে স্ট্যান্ডার্ড টেম্পলেট লাইব্রেরি (এসটিএল) বলা হয়

এসটিএলের যে উপাদানগুলি এখন স্ট্যান্ডার্ড সি ++ লাইব্রেরির অংশ, নাম স্পেসে সংজ্ঞায়িত হয়েছে। আমাদের প্রোগ্রামে আমদানি করার জন্য আমাদের অবশ্যই নেমস্পেসের নির্দেশিকাটি ব্যবহার করতে হবে।

বাক্য গঠন:



নেমস্পেস স্ট্যান্ডার্ড ব্যবহার করে

এসটিএলের তিনটি উপাদান রয়েছে

  • পাত্রে

  • অ্যালগরিদম

  • Iteilers

এই তিনটি উপাদান বিভিন্ন প্রোগ্রামিং সমাধানগুলিতে সহায়তা প্রদানের জন্য একত্রে একে অপরের সাথে কাজ করে। অ্যালগরিদম কনটেইনারগুলিতে সঞ্চিত অপারেশন করতে পুনরাবৃত্তিকে নিয়োগ দেয়।

ধারক হ'ল এমন একটি বস্তু যা মেমরিতে ডেটা সঞ্চয় করে রাখে একটি সংগঠিত ফ্যাশনে। এসটিএলে থাকা পাত্রে টেমপ্লেট শ্রেণীর দ্বারা প্রয়োগ করা হয় এবং তাই বিভিন্ন ধরণের ডেটা ধরে রাখতে সহজেই সংশোধন ও কাস্টমাইজ করা যায়।

ধারকগুলিতে থাকা ডেটা প্রক্রিয়া করার জন্য ব্যবহৃত একটি প্রক্রিয়া একটি অ্যালগরিদম হিসাবে সংজ্ঞায়িত করা হয়। এসটিএলে অনেকগুলি বিভিন্ন ধরণের অ্যালগরিদম অন্তর্ভুক্ত রয়েছে যেমন প্রাথমিককরণ, অনুসন্ধান, অনুলিপি, বাছাই করা, এবং মার্জ করা, অনুলিপি করা, বাছাই করা এবং মার্জ করা tasks অ্যালগরিদমগুলি টেম্পলেট ফাংশন দ্বারা প্রয়োগ করা হয়।

একটি পুনরাবৃত্তকারী এমন একটি বস্তু হিসাবে সংজ্ঞায়িত করা যেতে পারে যা ধারকটিতে একটি উপাদানকে নির্দেশ করে। আইট্রেটারগুলি পাত্রে থাকা সামগ্রীর মধ্য দিয়ে যেতে পারা যায়। আইট্রেটারগুলি ঠিক পয়েন্টারগুলির মতো পরিচালনা করা হয়। আমরা তাদের বৃদ্ধি বা হ্রাস করতে পারি। Iteters ধারকগুলির সাথে অ্যালগরিদম সংযুক্ত করে এবং পাত্রে সঞ্চিত ডেটা ম্যানিপুলেশনে মূল ভূমিকা পালন করে।

Container-STL-in-C++

সিটি ++ এ এসটিএলে এই নিবন্ধটি নিয়ে চলছে

পাত্রে

এসটিএল দশটি ধারককে সংজ্ঞায়িত করে যা তিনটি বিভাগে বিভক্ত।

পাত্রে

বর্ণনা

শিরোনাম ফাইল

একটি ডাবলিকে একটি ইনটকে রূপান্তর করুন

আইট্রেটার

ভেক্টর

এটি একটি গতিশীল অ্যারে হিসাবে সংজ্ঞায়িত করা যেতে পারে। এটি যে কোনও উপাদানগুলিতে সরাসরি অ্যাক্সেসের অনুমতি দেয়।

এলোমেলো প্রবেশাধিকার

তালিকা

এটি একটি দ্বি নির্দেশমূলক রৈখিক তালিকা। এটি যে কোনও জায়গায় সন্নিবেশ এবং মোছার অনুমতি দেয়

দ্বি নির্দেশমূলক

এবং

এটি একটি ডাবল-শেষ সারি। উভয় প্রান্তে সন্নিবেশ এবং মোছার অনুমতি দেয়। যে কোনও উপাদানটিতে সরাসরি অ্যাক্সেসের অনুমতি দেয়।

এলোমেলো প্রবেশাধিকার

সেট

এটি অনন্য সেট সংরক্ষণের জন্য একটি সহযোগী ধারক। দ্রুত দেখার অনুমতি দেয়।

দ্বি নির্দেশমূলক

মাল্টিসেট

এটি অ-অনন্য সেট সংরক্ষণের জন্য একটি সহযোগী ধারক।

দ্বি নির্দেশমূলক

মানচিত্র

এটি অনন্য কী / মান জোড় সংরক্ষণ করার জন্য একটি সহযোগী ধারক। প্রতিটি কী কেবল একটি মানের সাথে যুক্ত।

দ্বি নির্দেশমূলক

মাল্টিম্যাপ

এটি কী / মান সংরক্ষণ করার জন্য একটি সহযোগী ধারক যাতে একটি কী একাধিক মানের (এক থেকে বহু মানচিত্রের) সাথে যুক্ত হতে পারে। এটি একটি কী-ভিত্তিক দেখার অনুমতি দেয়।

দ্বি নির্দেশমূলক

স্ট্যাক

একটি স্ট্যান্ডার্ড স্ট্যাক সর্বশেষে প্রথম-আউট (লিফো) অনুসরণ করে

কোনও পুনরুক্তিকারী নেই

কিউ

একটি মানক সারিতে প্রথম-ইন-ফার্স্ট-আউট (ফিফো) অনুসরণ করা হয়

কোনও পুনরুক্তিকারী নেই

অগ্রাধিকার-সারি

প্রথম উপাদানটি সর্বদা সর্বোচ্চ অগ্রাধিকার উপাদান element

কোনও পুনরুক্তিকারী নেই

সিকোয়েন্স পাত্রে

সিকোয়েন্স পাত্রে একটি রৈখিক ক্রমে উপাদান সংরক্ষণ করে। লাইন বরাবর তাদের অবস্থানের দ্বারা সমস্ত উপাদান একে অপরের সাথে সম্পর্কিত। তারা উপাদান সন্নিবেশ করার অনুমতি দেয় এবং তাদের সমস্ত তাদের উপর বেশ কয়েকটি অপারেশন সমর্থন করে।

এসটিএল তিন ধরণের ক্রম উপাদান সরবরাহ করে:

  • ভেক্টর
  • তালিকা
  • এবং

সহযোগী পাত্রে:

এগুলি এমনভাবে ডিজাইন করা হয়েছে যাতে তারা কীগুলি ব্যবহার করে উপাদানগুলিতে সরাসরি অ্যাক্সেস সমর্থন করতে পারে। তারা অনুক্রমিক নয়। চার ধরণের হয়

মিশ্র পাত্রে:

  1. সেট
  2. মাল্টিসেট
  3. মানচিত্র
  4. মাল্টিম্যাপ

উপরের সমস্ত কন্টেইনারগুলি গাছ নামে একটি স্ট্রাকচারে ডেটা সঞ্চয় করে যা দ্রুত সহজতর করে

ক্রম অনুসারে সন্ধান, মোছা এবং সন্নিবেশ। ধারক সেট বা মাল্টিসেট বিভিন্ন আইটেম সংরক্ষণ করতে পারে এবং কী হিসাবে মানগুলি ব্যবহার করে তাদের পরিচালনা করার জন্য ক্রিয়াকলাপ সরবরাহ করতে পারে।

এবং মানচিত্র বা মাল্টিম্যাপ জোড়ায় আইটেমগুলি সঞ্চয় করতে ব্যবহৃত হয়, যাকে একটি বলা হয় এবং অন্যটি

মান বলা হয়।

উত্পন্ন পাত্রে:

এসটিএল স্ট্যাক, সারি এবং অগ্রাধিকার_কুই নামে তিনটি উত্পন্ন কন্টেইনার সরবরাহ করে। এগুলি কনটেইনার অ্যাডাপ্টার হিসাবেও পরিচিত।

তিন ধরণের উত্পন্ন পাত্রে রয়েছে:

1. স্ট্যাক

2.কিউ

3.প্রিয়রিটি_কিউ

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

সিটি ++ এ এসটিএলে এই নিবন্ধটি নিয়ে চলছে

অ্যালগরিদম

অ্যালগরিদমগুলি এমন ফাংশন যা তাদের সামগ্রীতে প্রসেসের জন্য বিভিন্ন ধরণের পাত্রে সাধারণত ব্যবহৃত হতে পারে। যদিও প্রতিটি ধারক তার প্রাথমিক ক্রিয়াকলাপগুলির জন্য ফাংশন সরবরাহ করে, এসটিএল আরও বর্ধিত বা জটিল ক্রিয়াকলাপগুলিকে সমর্থন করার জন্য ষাট টিরও বেশি স্ট্যান্ডার্ড অ্যালগরিদম সরবরাহ করে। স্ট্যান্ডার্ড অ্যালগরিদমগুলি একই সাথে দুটি ভিন্ন ধরণের ধারক নিয়ে কাজ করার অনুমতি দেয়।

এসটিএল অ্যালগরিদম পুনরায় ব্যবহারযোগ্যতার দর্শনকে শক্তিশালী করে। এই অ্যালগরিদমগুলি ব্যবহার করে প্রোগ্রামাররা প্রচুর সময় এবং প্রচেষ্টা সাশ্রয় করতে পারে। এসটিএল অ্যালগরিদমে অ্যাক্সেস পেতে, আমাদের অবশ্যই আমাদের প্রোগ্রামে অন্তর্ভুক্ত করব।

এসটিএল অ্যালগরিদম, তারা যে ক্রিয়াকলাপ সম্পাদন করে তার উপর ভিত্তি করে, নিম্নলিখিত হিসাবে শ্রেণিবদ্ধ করা যেতে পারে:

সিটি ++ এ এসটিএলে এই নিবন্ধটি নিয়ে চলছে

আইট্রেটারস:

Iteters পয়েন্টার মত কাজ করে এবং ধারক উপাদান অ্যাক্সেস ব্যবহার করা হয়। আমরা পাত্রে থাকা সামগ্রীগুলির মধ্য দিয়ে পুনরুক্তি করতে পুনরুক্তি ব্যবহার করি। আইট্রেটারগুলি ঠিক পয়েন্টারগুলির মতো পরিচালনা করা হয়। আমরা আমাদের প্রয়োজনীয়তা অনুযায়ী তাদের বৃদ্ধি বা হ্রাস করতে পারি। ইলিট্রেটাররা পাত্রে আলগোরিদিমগুলির সাথে সংযোগ স্থাপন করে এবং পাত্রে সঞ্চিত ডেটা ম্যানিপুলেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি প্রায়শই একটি উপাদান থেকে অন্য উপাদান দিয়ে যাওয়ার জন্য ব্যবহৃত হয়, এই প্রক্রিয়াটিকে ধারকটির মাধ্যমে পুনরাবৃত্তি বলা হয়।

পাঁচ ধরণের পুনরাবৃত্তি রয়েছে:

1. ইনপুট

2.আউটপুট

3. ফরওয়ার্ড

4. দ্বি নির্দেশমূলক

5.র্যান্ডম

আইট্রেটার

অ্যাক্সেস পদ্ধতি

চলাচলের দিকনির্দেশ

I / O সামর্থ্য

মন্তব্য

ইনপুট

লিনিয়ার

কেবল ফরওয়ার্ড

শুধুমাত্র পাঠযোগ্য

সংরক্ষণ করা যায় না

আউটপুট

লিনিয়ার

কেবল ফরওয়ার্ড

শুধু লিখুন

সংরক্ষণ করা যায় না

ফরোয়ার্ড

লিনিয়ার

কেবল ফরওয়ার্ড

পড়ুন / লিখুন

রক্ষা করা যায়

দ্বি নির্দেশমূলক

লিনিয়ার

সামনে এবং পিছনে

পড়ুন / লিখুন

রক্ষা করা যায়

এলোমেলো

এলোমেলো

সামনে এবং পিছনে

পড়ুন / লিখুন

রক্ষা করা যায়

নিক্ষেপ এবং নিক্ষেপ মধ্যে জাভা পার্থক্য

বিভিন্ন ধরণের কন্টেইনারগুলির সাথে কেবলমাত্র বিভিন্ন ধরণের পুনরাবৃত্তিকারী অবশ্যই ব্যবহার করতে হবে

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

এভাবে আমরা ‘এসটিএল ইন সি ++’ নিয়ে এই নিবন্ধটি শেষ করেছি। আপনি যদি আরও শিখতে চান তবে এটি দেখুন এডুরেকা, একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা। এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি আপনাকে হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই ব্লগের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।