Je vais d'abord donner un cas spécifique, et je voudrais voir si elle peut être appliquée à un problème général.retournant un ensemble de clés dans la carte correspondant aux critères
Dites que j'ai une carte. Et je veux que toutes les clés répondent à certains critères. Par exemple toutes les clés contenant "COL". Ma mise en œuvre naïve sera
template<typename T>
void Filter (map<string, T> & m, std:set<string> & result, const std::string& condition)
{
for(map<string,string> iter=m.begin();iter!m.end();iter++)
{
std::string key=iter->first;
size_t found=key.find(condition);
if (found!=string::npos)
result.insert(key);
}
}
quelle est la bonne façon de mettre en œuvre cela?
Aussi, quel est un bon moyen de mettre en œuvre un problème général lorsque je veux filtrer la carte en utilisant algos?
J'ai essayé de mettre en œuvre ce ne pas utiliser boost et a échoué. Je veux dire juste remove_copy_if et inserter. Des idées? –
hmm vous auriez besoin de coder votre propre wrapper itérateur d'entrée, je pense. Je ne peux pas penser à une autre façon de le faire. –
une autre idée peut être d'utiliser transformer, et retourner une chaîne vide en cas de rejet. mais c'est ambigu si l'aiguille est une chaîne vide aussi: ( –