Comment enlever efficacement les guillemets de std::string, si elles existent

Cette question risque d'être un doublon par exemple supprimer les guillemets doubles à partir d'une chaîne de caractères en c++
mais aucun des asnwers que j'ai vu adresses ma question
J'ai une liste de chaînes de caractères, certaines sont entre guillemets doubles et certains ne le sont pas, les Citations sont toujours au début et à la fin

std::vector<std::string> words = boost::assign::list_of("words")( "\"some\"")( "of which")( "\"might\"")("be quoted");

Je suis à la recherche de la façon la plus efficace pour supprimer les guillemets. Voici ma tentative

for(std::vector<std::string>::iterator pos = words.begin(); pos != words.end(); ++pos)
{
  boost::algorithm::replace_first(*pos, "\"", "");
  boost::algorithm::replace_last(*pos, "\"", "");
  cout << *pos << endl;
}

Je peux faire mieux que cela? J'ai potentiellement des centaines de milliers de chaîne de processus.Ils peuvent venir à partir d'un fichier ou d'une base de données. Le std::vector dans l'exemple, c'est juste pour des fins d'illustration.

On dirait que vous êtes mieux de ne pas avoir les citations dans les données en premier lieu?
si seulement nous pouvions choisir les données que nous avons à travailler avec 🙂
Combien de temps sont les chaînes de caractères?
Parfois, nous le pouvons. Parfois, nous de la source de données et tentent de corriger la mauvaise chose.
Je doute qu'il serait imposer bizarre, les restrictions et les exigences sur lui-même, s'il avait le choix.

OriginalL'auteur molita | 2011-09-11