You're not using iterator correctly. For example, if you wanted to print all numbers in a list, you'd write cout << *itr;, right? So the object in the list is *itr. The address of that object is &*itr, the size of that object is sizeof(*itr). What you are writing now is the iterator itself and not the value it points to.