title: Virtual parent for containers and 'iterable' class
body: <p>I was wondering if there was a reason why there's no virtual parent inheritance for all std containers.</p>
  
  <p>Since C++ is oop, I get some reason for using external function as such from algorithm header.</p>
  
  <p>But i wonder why string does not have size() function ( doing the same as length ) for genericity?</p>
  
  <p>Also, why is there no "iterable" class from which would iterables containers inherit ( because of the different types of iterator? )
  This one come from my short experience with python. In my opinion, python's biggest strengh is how easy if is to use iterable.</p>
  
  <p>EDIT:
  To clarify myself: i know C++ is mutli-paradigm, but i would like to focus on containers. We could have keep C-style using struct and functions, why defining some as methods and others not? For encapsulation only?
  Having both sequential and oop means is confusing and illogical i think
  Why having begin(vec) and vec.begin() ?</p>
  
  <p>And i speak about iterable, not iterators, and yes, iterator was a class in the std defining an iterface for iterator which is now deprecated ( and i understand why ). So iterators are object, why not doing iterable object ( juste to pack iterator begin and iterator end together if it is not to define virtual parent for iterable containers) ?</p>
  
  <p>I hope i was clearer this time. I already got answer i thought about by myself for the most, but i would prefer an explanation about the current logic in the std.</p>
  
  <p>Thank you for the time taken to read and answer.</p>