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