Insert the specified numElements in the range [first .. last)] at the specified position, by moving the elements in the range [fromBegin .. position)] backward by numElements position. Pass the specified allocator to the copy constructor if appropriate. Load into the specified toBegin an iterator to the end of the data after insertion (i.e., fromBegin - numElements). The behavior is undefined unless fromBegin - numElements is a valid iterator (i.e., the block pointer array holds enough room before the fromBefore position to insert numElements).