প্রতিযোগিতামূলক প্রোগ্রামিং-এ সময় বাঁচাতে C++-এর কিছু হ্যান্ডি ট্রিকস খুব কাজে আসে। নিচে সেগুলো উদাহরণসহ দেওয়া হলো।
১. % অপারেটর ছাড়া বিজোড়/জোড় চেক
if ((n & 1) != 0) { /* বিজোড় */ } else { /* জোড় */ }
২. শিফট অপারেটর দিয়ে গুন/ভাগ
y = x << 2; // x * 4 y = x >> 2; // x / 4
৩. XOR দিয়ে সওয়াপ (থার্ড ভেরিয়েবল ছাড়া)
x ^= y; y ^= x; x ^= y;
৪. strlen() ছাড়া স্ট্রিং লুপ
for (int i = 0; s[i]; i++) cout << s[i];
৫. emplace_back() vs push_back()
emplace_back() ইন-প্লেস কনস্ট্রাকশন করে, অতিরিক্ত কপি/মুভ এড়ায়। ভেক্টর, লিস্ট ইত্যাদিতে দ্রুত।
৬. বিল্ট-ইন GCD
__gcd(x, y); // GCC/Clang এক্সটেনশন
C++17 থেকে std::gcd (header <numeric>) স্ট্যান্ডার্ড।
৭. গ্লোবাল অ্যারে বড় সাইজ
মেইনে ~106, গ্লোবালে ~107 পর্যন্ত অ্যারে ডিক্লেয়ার করা যায়।
৮. লগ দিয়ে MSD (Most Significant Digit)
n = 4578; double k = log10(n); k = k - floor(k); int msd = pow(10, k); // 4
৯. লগ দিয়ে ডিজিট কাউন্ট
int digits = floor(log10(n)) + 1;
১০. ২-এর পাওয়ার চেক
bool isPow2 = x && !(x & (x - 1));
১১. STL এলগরিদম: all_of, any_of, none_of
all_of(begin, end, pred); any_of(begin, end, pred); none_of(begin, end, pred);
১২. copy_n দিয়ে কপি
copy_n(src, n, dest);
১৩. iota দিয়ে সিকোয়েন্স
iota(arr, arr+5, 15); // 15,16,17,18,19
১৪. বাইনারি লিটারেল (C++14)
int x = 0b1101; // 13
১৫. অল्टरনেটিভ টোকেন: and, or, not
if (x < 10 and x > 5) cout << "True";