I'd like to confirm should I do what I'm doing and is correct/advised.

I've vector of objects:

Code:
std::vector<Microbiome*> diversity;

      Microbiome* temp_object=new Microbiome(domain,phyla,clas,order,family,genus,species); //create object

diversity.push_back(temp_object);
I could have used emplace and avoided usage of new.
I've a function to delete Microbiome objects for this vector. I've destructor seating back in Microbiome class.

Code:
void Excel::delete_microb_obj(const std::vector<Microbiome*>& temp_diversity ){

  std::string poison_string="-Z"; //poison string
  for(std::vector<Microbiome *>::const_iterator it = temp_diversity.begin(); it!=temp_diversity.end() ; ++it){

    (*it)->set_domain(poison_string);
    (*it)->set_phyla(poison_string);
    (*it)->set_clas(poison_string);
    (*it)->set_order(poison_string);
    (*it)->set_species(poison_string);
    (*it)->set_genus(poison_string);
    delete *it;
  }
}
Is this correct to poison object attributes and delete?