Algorithm C++

#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
class PC
{
   public:
   enum part { keyboard, mouse, monitor };
   PC( part a_part = PC::keyboard, int id = 0 );
   bool operator<( const PC& rhs ) const;
   void print() const;
   private:
   part part_;
   int id_;
};
inline
PC::PC( part a_part, int id ) : part_( a_part ), id_( id ){}
inline bool PC::operator<( const PC& rhs ) const{  
   return id_ < rhs.id_; 
}
void PC::print() const {
   string component;
   if( part_ == keyboard )
      component = "keyboard";
   else if( part_ == mouse )
      component = "mouse";
   else
      component = "monitor";
   cout << "ID: " << setw( 8 ) << left << id_ << " PC: " << component << endl;
}
int main( )
{
   list listA;
   listA.push_back( PC( PC::keyboard, 3 ) );
   listA.push_back( PC( PC::mouse, 1 ) );
   listA.push_back( PC( PC::monitor, 9 ) );
   listA.push_back( PC( PC::keyboard, 2 ) );
   listA.push_back( PC( PC::monitor, 8 ) );
   for_each( listA.begin(), listA.end(),mem_fun_ref( &PC::print ) );
}