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

C++-এ i++ এবং ++i-এর পারফরম্যান্স পার্থক্য কি?

C++-এ ++i (প্রিফিক্স) এবং i++ (পোস্টফিক্স) এর মধ্যে বড় পার্থক্য রয়েছে, যদিও প্রিমিটিভ টাইপে (int, char) আধুনিক কম্পাইলার অপ্টিমাইজ করে একই কোড জেনারেট করে।

প্রিফিক্স vs পোস্টফিক্স

  • ++i (Prefix): প্রথমে i-র মান বড়ায়, তারপর এক্সপ্রেশনটির মান নতুন i রিটার্ন করে।
  • i++ (Postfix): প্রথমে এক্সপ্রেশনটির মান পুরনো i রিটার্ন করে, তারপর i-র মান বড়ায়।

উদাহরণ কোড

#include <iostream>
using namespace std;

int main() {
    int x = 3, y, z;
    y = x++;  // y = 3, তারপর x = 4
    z = ++x;  // x = 5, তারপর z = 5
    cout << x << ", " << y << ", " << z;
    return 0;
}

আউটপুট

5, 3, 5

স্টেপ-বাই-স্টেপ ব্যাখ্যা:

  1. x = 3 ইনিশিয়ালাইজ
  2. y = x++ → এক্সপ্রেশন মান = ৩ (পুরনো x), y = 3, তারপর x = 4
  3. z = ++x → x = 5 (ইনক্রিমেন্ট), এক্সপ্রেশন মান = ৫, z = 5
  4. ফাইনাল: x=5, y=3, z=5

পারফরম্যান্স পার্থক্য

সেরা প্র্যাকটিস: লুপ কাউন্টার বা ইটারেটর এক্সপ্রেশনে মান দরকার নেই সেখানে সবসময় ++i ব্যবহার করুন। এটি আদত ভালো এবং জেনেরিক কোডে (টেমপ্লেট) পারফরম্যান্স নিশ্চিত করে।

  1. C++-এ 'struct' এবং 'typedef struct'-এর পার্থক্য

  2. C++-এ লিটারেল (Literal) এবং কনস্ট্যান্ট (Constant) এর পার্থক্য

  3. C++-এ প্রিফিক্স (Prefix) এবং পোস্টফিক্স (Postfix) অপারেটরের পার্থক্য

  4. C++-এ ++i এবং i++ এর পার্থক্য

কপিরাইট © https://bd.wsxdn.com সমস্ত অধিকার সংরক্ষিত
দিকPrefix (++i)Postfix (i++)
প্রিমিটিভ টাইপ (int, float)কোনো পার্থক্য নেই (কম্পাইলার অপ্টিমাইজ করে)কোনো পার্থক্য নেই
ইউজার-ডিফাইনড টাইপ (ইটারেটর, ক্লাস)দ্রুত — টেম্পোরারি অবজেক্ট তৈরি হয় নাধীর — পুরনো মান কপি করে টেম্পোরারি অবজেক্ট তৈরি করে
রিটার্ন টাইপরেফারেন্স (T&)ভ্যালু (T)