Constant class member functionssuggest change
What does ‘const member functions’ of a class really means. The simple definition seems to be that, a const member function cannot change the object. But what does ‘can not change’ really means here. It simply means that you cannot do an assignment for class data members.
However, you can do other indirect operations like inserting an entry into a map as shown in the example. Allowing this might look like this const function is modifying the object (yes, it does in one sense), but it is allowed.
So, the real meaning is that a const member function cannot do an assignment for the class data variables. But it can do other stuff like explained in the example.