Oh, well word of advice:
DON'T SEND POINTERS or I will personally fly up to Sweden and slap you.
Secondly, if you're synchronizing the array of ships between all computers, shouldn't you just need to tell all computers to delete index [1] of their vector?
In answer to your question, if you have the pointer to an element in the vector, I don't think you can directly find the index of said array. You'll have to search for it.
bool failed = false;
size_t index = getIndex( pointerToShip, failed );
if( failed ) DESASTER();
// ----- SNIP -------
site_t getIndex( std::vector<Ship>* pointerToShip, bool& failed )
{
for( size_t index = 0; index != vectorOfShip.size(); index++ )
{
// if pointer is the same, we've found the index
if( &vectorOfShip[index] == pointerToShip ) return index
}
// this shouldn't happen
failed = true;
}
TheComet

Yesterday is History, Tomorrow is a Mystery, but Today is a Gift. That is why it is called "present".