use virtual relocate method
fix const iter type and add relocate method
abstract method in base
add a way to pull data ptr for relocate
emplace and relocate methods