inline bool insert_ordinal( OrdinalVector & v , unsigned part_ordinal ) { for(OrdinalVector::iterator i=v.begin(), e=v.end(); i!=e; ++i) { if (*i == part_ordinal) return false; if (*i > part_ordinal) { v.insert(i, part_ordinal); return true; } } v.push_back(part_ordinal); return true ; }