samedi 20 février 2021

A list iterator reference - Program output

Given the following algorithm:

#include <iostream>
#include <list>

int main ()
{
  std::list<int> mylist = {5,10,15,20};

  std::cout << "mylist contains:"<<"\n";

  //for (auto it = mylist.begin(); it != mylist.end(); ++it)
  auto it = mylist.begin();
  while ( it != mylist.end())
  {
      std::cout << *it;
      std::cout << "    "<< &it<<std::endl;
      it++;
  }

  std::cout << '\n';

  return 0;
}

The output of this program is:

mylist contains:
 5     0x7dc9445e5b50
 10    0x7dc9445e5b50
 15    0x7dc9445e5b50
 20    0x7dc9445e5b50

Since we are moving our iterator, why the address doesn't change?

I was excepting a 4 bytes offset of the reference.

Aucun commentaire:

Enregistrer un commentaire