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

C++ STL-এ লুকানো ট্রিক্স


এখানে আমরা C++ STL-এ কিছু লুকানো ট্রিক্স দেখব।

ব্রেস '{}' ব্যবহার করে পেয়ারের ভ্যালু অ্যাসাইন করা। আমরা এগুলো টাপলেও অ্যাসাইন করতে পারি।

pair<int, int> my_pair = make_pair(10, 20); pair<int, int> my_pair2 = { 10, 20 }; //using braces pair<int, <char, int> > my_pair3 = { 10, { 'A', 20 } }; //complex pair

কখনো কখনো আমরা অনেক হেডার ইনক্লুড মনে রাখি না, বা কখনো হেডারের নাম ভুলে যাই, সেক্ষণে আমরা এই ট্রিক ফলো করতে পারি সব হেডার ইনক্লুড করতে।

#include <bits/stdc++.h>

C++-এ বিল্ট-ইন GCD ফাংশন আছে। সেই ফাংশনটা এত জনপ্রিয় নয় তাই আমরা সেটি না জানি। ফাংশনটি নিচের মত ব্যবহার করা যায় −

__gcd(a, b)

 C++-এ to_string() ফাংশন আছে বিভিন্ন ডেটা টাইপকে স্ট্রিংতে কনভার্ট করতে। মনে করুন আমরা একটি ইন্টিজারকে স্ট্রিং বা একটি ফ্লোটকে স্ট্রিং করতে চাই, আমরা এই ফাংশন ব্যবহার করতে পারি।

float x = 2.3654; string str = to_string(x);

উল্টো কাজ করার জন্য, অর্থাৎ স্ট্রিং থেকে ইন্টিজারে কনভার্ট করার জন্য, আমাদের stoi() ফাংশন আছে।

string num = “256”; int x = stoi(num);

যদি আমরা কিছু ভেরিয়েবল যেকোনো ফাংশনের বাইরে ডিক্লেয়ার করি (গ্লোবাল ভেরিয়েবল) তবে সেগুলো স্ট্যাটিক হবে, এবং তাদের ডিফল্ট ভ্যালু হবে ০।

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

int arr[10] = {};

 memset ফাংশন ব্যবহার করে একটি পুরো অ্যারে কিছু প্রিডিফাইনড ভ্যালু দিয়ে অ্যাসাইন করা যায়। যদি আমরা অ্যারেটিকে ভ্যালু ৫ দিয়ে ইনিশিয়ালাইজ করতে চাই, তবে সব এলিমেন্ট ৫ ধারণ করবে। আমরা নিচের লাইন লিখে এটা করতে পারি −

int arr[10]; memset(arr, 5, sizeof(arr));

  1. C++ STL-এ স্ট্যাক (Stack)

  2. C++-এর লুকানো ফিচার ও ট্রিকস

  3. C++-এ static_cast

  4. C++ STL-এ accumulate দিয়ে অ্যারে প্রোডাক্ট বের করা