public static <K> void merge(VectorSTL<K> v1, VectorSTL<K> v2, VectorSTL<K> destination) {
		if (v1.empty() && v2.empty()) {
			destination.clear();
			return;
		}
		K value = v1.empty() ? v2.get(0) : v1.get(0);
		if (!(value instanceof Comparable)) {
			throw new UnsupportedOperationException("T must be comparable");
		}
		merge(v1, v2, destination, comparableComparator);

	}
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