public IteratorSTL<T> upper_bound(T key, Comparator<T> comparator) {
		int i = Collections.binarySearch(data, key, comparator);

		// if it is negative, the upper bound index is -i-1;
		if (i < 0) {
			i = -i - 1;
		}

		// advance until the data is > key
		for (; i < data.size(); i++) {
			if (!data.get(i).equals(key)) {
				break;
			}
		}
		return new VectorIterator<>(data, i);
	}
Returns an iterator postioned at the item in the vector that is the smallest key less than
the given key.  This method assumes the vector is sorted in ascending order.
@param key the key for which to find the upper bound
@return an iterator postioned at the item in the vector that is the smallest key less than
the given key. 
@throws UnsupportedOperationException if T is not comparable
Ghidra/Framework/Generic/src/main/java/generic/stl/VectorSTL.java