Learn C++ STL

lesson ৫ / ৯ · iterator: container আর algorithm-এর মাঝখানের জিনিসটা

Module ১১ · iterator: container আর algorithm-এর মাঝখানের জিনিসটা

ভেতরের কথা: iterator আসলে মোড়ানো একটা pointer

Proপড়া

Kenji দুইটা iterator-এর sizeof print করল: একটা vector-এর, একটা list-এর। দুইটাই বলল 8 byte। অথচ vector-এর iterator দশ লাখ ঘর লাফ দেয় এক microsecond-এরও কমে, আর list-এর iterator একই লাফে নেয় 10 থেকে 14 millisecond। Maria ঠিক সেই প্রশ্নটা করে, যার উত্তর এই lesson: "কিন্তু দুইটার size একই হলে এমন হয় কেন?" উত্তর লুকিয়ে আছে ওই 8 byte-এর ভেতরে কী আছে তাতে, আর GCC 12.2 সেটা আমাদের লাইন ধরে ধরে পড়তে দেয়।

আপনার জন্য এই lesson টা খোলা কি না দেখা হচ্ছে…

ভেতরের কথা: iterator আসলে মোড়ানো একটা pointer এর ভেতরে কী আছে

  1. প্রতিটা 8 byte: GCC 12 একটা iterator-এর ভেতরে কী রাখে
  2. ++ কী করে: একটা যোগ, একটা link, গাছ বেয়ে ওঠা, একটা লাফ
  3. reverse_iterator: রাখে একটা জায়গা, পড়ে তার আগেরটা
  4. back_inserter: একটা assignment, যেটা push_back call করে
  5. std::distance: একটা loop, একটা বিয়োগ, নয়তো রেখে দেওয়া size
  6. Performance lab: list-এ হাঁটা ধীর কেন
  7. একটা iterator-কে বাসি হতে দেখা
  8. Debug mode: library প্রতিটা iterator পাহারা দেয়