C++ STL-এ Set কী?
C++ STL-এ সেট হল এমন কন্টেইনার যেগুলো জেনারেল অর্ডারে ইউনিক এলিমেন্ট ধারণ করতে হবে। সেটে ইউনিক এলিমেন্ট থাকতে হয় কারণ এলিমেন্টের ভ্যালুই এলিমেন্টটিকে আইডেন্টিফাই করে। একবার সেট কন্টেইনারে একটি ভ্যালু যোগ করলে পরে সেটা মডিফাই করা যায় না, যদিও আমরা এখনও সেটে ভ্যালু রিমুভ বা অ্যাড করতে পারি। সেটগুলো বাইনারি সার্চ ট্রি হিসেবে ব্যবহার করা হয়।
set::emplace_hint() কী?
emplace_hint() ফাংশন হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা
সিনট্যাক্স
Set1.emplace_hint(iterator position, const type_t& value);
প্যারামিটার
এই ফাংশন দুটি প্যারামিটার গ্রহণ করে, একটি হিন্ট পজিশনের জন্য এবং দ্বিতীয়টি এমপ্লেস করার এলিমেন্টের জন্য।
Position − এটি হিন্ট পজিশন, যেখানে থেকে সার্চ শুরু হবে ভ্যালু এমপ্লেস করার পজিশন খুঁজে বের করতে। এই পজিশন শুধু ফাংশনটি দ্রুত কাজ করার জন্য হয়, এই ফাংশন এলিমেন্টের একজাক্ট লোকেশন স্পেসিফাই করে না।
Value − वो আসল ভ্যালু যা আমাদের এমপ্লেস করতে হবে।
রিটার্ন ভ্যালু
যদি এলিমেন্ট সফলভাবে ইনসার্ট হয়, তবে এই ফাংশন নতুন ইনসার্ট হওয়া এলিমেন্টের ইটারেটর রিটার্ন করে।
উদাহরণ
Input: set mySet; mySet.emplace_hint(mySet.begin(), 0); mySet.emplace_hint(i, 1); mySet.emplace_hint(i, 2); mySet.emplace_hint(i, 1); Output: Elements are : 0 1 2
সম্পূর্ণ কোড উদাহরণ ১
#include <bits/stdc++.h>
using namespace std;
int main() {
set<int> mySet;
auto i = mySet.emplace_hint(mySet.begin(), 0);
i = mySet.emplace_hint(i, 1);
mySet.emplace_hint(i, 2);
mySet.emplace_hint(i, 1);
cout << "elements are : ";
for (auto i = mySet.begin(); i != mySet.end(); i++)
cout << *i << " ";
return 0;
}
আউটপুট
Elements are : 0 1 2
সম্পূর্ণ কোড উদাহরণ ২ (String)
#include <iostream>
#include <set>
#include <string>
int main () {
std::set<std::string> mySet;
auto i = mySet.cbegin();
mySet.emplace_hint (i, "best");
i = mySet.emplace_hint (mySet.cend(), "point");
i = mySet.emplace_hint (i, "is the");
i = mySet.emplace_hint (i, "tutorials");
std::cout << "string is : ";
for(const std::string& str: mySet)
std::cout << ' ' << str;
std::cout << '\n';
return 0;
}
আউটপুট
String is : best is the point tutorials