Dipende dal contesto, puoi usare tanti modi. uno è:
vec.erase(vec.begin()+i);
ma ti causa problemi se è in un ciclo loop. gli iteratori di un vettore vengono invalidati ed ogni erase.
Un altro modo è quello di usare std::remove oppure std::remove_if insieme ad vec.erase ma qui devi avere un motivo per eliminarlo.
vec.erase(std::remove(vec.begin(),vec.end(),causa),vec.end());