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

C++ STL-এ set::cbegin() এবং set::cend() ফাংশন

C++ STL-এ Set কী?

C++ STL-এ সেট হল এমন কন্টেইনার যেগুলো জেনারেল অর্ডারে ইউনিক এলিমেন্ট ধারণ করতে হবে। সেটে ইউনিক এলিমেন্ট থাকতে হয় কারণ এলিমেন্টের ভ্যালুই এলিমেন্টটিকে আইডেন্টিফাই করে। একবার সেট কন্টেইনারে একটি ভ্যালু যোগ করলে পরে সেটা মডিফাই করা যায় না, যদিও আমরা এখনও সেটে ভ্যালু রিমুভ বা অ্যাড করতে পারি। সেটগুলো বাইনারি সার্চ ট্রি হিসেবে ব্যবহার করা হয়।

set::cbegin() কী:

cbegin() ফাংশন হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা হেডার ফাইলে ডিফাইন করা আছে। এই ফাংশন একটি কনস্ট্যান্ট ইটারেটর রিটার্ন করে যা সেট কন্টেইনারের প্রথম এলিমেন্টকে পয়েন্ট করে। যেহেতু সেট কন্টেইনারের সব ইটারেটর কনস্ট্যান্ট ইটারেটর, সেগুলো কন্টেন্ট মডিফাই করতে ব্যবহার করা যায় না, সেগুলো শুধু সেট কন্টেইনারের এলিমেন্টের মধ্য দিয়ে ইটারেটর বড় বা ছোট করে ট্রাভার্স করতে ব্যবহার করা যায়।

সিনট্যাক্স

constant_iterator name_of_set.cbegin();

প্যারামিটার

এই ফাংশন কোনো প্যারামিটার গ্রহণ করে না।

রিটার্ন ভ্যালু

এই ফাংশন constant_iterator রিটার্ন করে, যা সিকোয়েন্সের শেষে পাস করা হয়েছে।

উদাহরণ

Input: set<int> set_a = {18, 34, 12, 10, 44}; set_a.cbegin(); Output: Beginning element in the set container: 10

সম্পূর্ণ কোড উদাহরণ ১

#include <iostream>
#include <set>
using namespace std;

int main () {
    set<int> set_a = {18, 34, 12, 10, 44};
    cout << "Beginning element in the set container: ";
    cout << *(set_a.cbegin());
    return 0;
}

আউটপুট

Beginning element in the set container: 10

সম্পূর্ণ কোড উদাহরণ ২

#include <iostream>
#include <set>
using namespace std;

int main () {
    set<int> set_a = {18, 34, 12, 10, 44};
    cout << "set_a contains:";
    for (auto it = set_a.cbegin(); it != set_a.cend(); ++it)
        cout << ' ' << *it;
    cout << '\n';
    return 0;
}

আউটপুট

set_a contains: 10 12 18 34 44

set::cend() কী?

cend() ফাংশন হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা হেডার ফাইলে ডিফাইন করা আছে। এই ফাংশন সেট কন্টেইনারের শেষ এলিমেন্টের পরের এলিমেন্টের কনস্ট্যান্ট ইটারেটর রিটার্ন করে। যেহেতু সেট কন্টেইনারের সব ইটারেটর কনস্ট্যান্ট ইটারেটর, সেগুলো কন্টেন্ট মডিফাই করতে ব্যবহার করা যায় না, সেগুলো শুধু সেট কন্টেইনারের এলিমেন্টের মধ্য দিয়ে ইটারেটর বড় বা ছোট করে ট্রাভার্স করতে ব্যবহার করা যায়।

সিনট্যাক্স

constant_iterator name_of_set.cend();

প্যারামিটার

এই ফাংশন কোনো প্যারামিটার গ্রহণ করে না।

রিটার্ন ভ্যালু

এই ফাংশন constant_iterator রিটার্ন করে, যা সিকোয়েন্সের শেষে পাস করা হয়েছে।

উদাহরণ

Input: set<int> set_a = {18, 34, 12, 10, 44}; set_a.end(); Output: Past to end element: 5

set::cend() cbegin() বা begin()-এর সাথে ব্যবহার করা হয় পুরো সেটের মাধ্যমে ইটারেট করতে, কারণ এটি কন্টেইনারের শেষ এলিমেন্টের পরের এলিমেন্টকে পয়েন্ট করে।

সম্পূর্ণ কোড উদাহরণ ১

#include <iostream>
#include <set>
using namespace std;

int main () {
    set<int> set_a = {18, 34, 11, 10, 44};
    cout << "Past to end element: ";
    cout << *(set_a.cend());
    return 0;
}

আউটপুট

Past to end element: 5 We will get a random value

সম্পূর্ণ কোড উদাহরণ ২

#include <iostream>
#include <set>
using namespace std;

int main () {
    set<int> set_a = {18, 34, 12, 10, 44};
    cout << " set_a contains:";
    for (auto it = set_a.cbegin(); it != set_a.cend(); ++it)
        cout << ' ' << *it;
    cout << '\n';
    return 0;
}

আউটপুট

set_a contains: 10 12 18 34 44
  1. C++ STL-এ set::begin() এবং set::end()

  2. C++ STL-এ set::lower_bound() ফাংশন

  3. C++ STL-এ set::find() ফাংশন

  4. C++ STL Set-এ ইনসারশন এবং ডিলিশন: insert(), emplace(), erase()