Поскольку вы знаете, что элемент находится внутри вектора, а вектор гарантирует, что его хранилище является смежным, вы можете сделать:
index = element_pointer - vector.data();
или
index = element_pointer - &vector[0];
Обратите внимание, что технически смежныегарантия была введена в C ++ 03, но я не слышал о реализации C ++ 98, которая не следует за ней.