If, for example, an instance of an object is created in shared memory, and this object has virtual functions, the lookup table would be filled with addresses of functions belonging to the process that created the instance. This of course means that only the process creating this instance can use this instance. Because STL doesn't use virtual functions, this limitation is not present. Another interesting point about the design of STL is that functions to sort, search or otherwise manipulate data are not member functions of the container classes. Algorithms perform actions such as sorting, searching, merging and the like.
Containers manipulate groups of objects and the memory they require.
Iterators are used to move through a container. Function objects encapsulate functions use by other parts of the library. Adaptors provide an alternative interface to a component of the library. A Simple Program Let's look at a simple simple test program using standard C-style arrays. In the above example, last1 and middle are iterators.