//precondition: [tBegin,tEnd) is a valid range. The operator > must be defined for T. //postcondition: return value is pointer to smallest element in [tBegin,tEnd) template InputIterator TMinimum(InputIterator tBegin,InputIterator tEnd) { InputIterator minPtr; for (minPtr = tBegin; tBegin != tEnd; tBegin++) { if (*tBegin < *minPtr) minPtr = tBegin; } return minPtr; }