| 
 |  | 
The Array_set function select() selects an arbitrary element and returns a pointer to it. An overzealous interpretation of ``arbitrary'' might tempt us to return a random element. We could do this by calling random(), described in random(C++), which returns a random pointer into an array:
       const T* select()const{
           check();
           return (n==0 ? 0 :
                     random(&b[0],&b[n]));
       }
From an efficiency standpoint, however, it is better to do as little work as possible to meet the specification. We therefore simply return the first element, if one exists:
       const T* select()const{
           check();
           return (n==0 ? 0 : &b[0]);
       }