Je remplis un vecteur std :: avec un objet.Comment supprimer les cellules vides d'un vecteur si vous utilisez remove_if
cette instance de vecteur tel que défini dans la ligne suivante:
std::vector< std::list< pcl::PointXYZRGB>> tab;
Je veux maintenant supprimer les cellules vides. J'ai essayé comme suit:
tab.erase(remove_if(tab.begin(), tab.end(), std::is_empty), tab.end());
Je reçois l'erreur suivante:
error: missing template arguments before ‘)’ token
voxels.erase(remove_if(voxels.begin(), voxels.end(), is_empty**)**, voxels.end());
Je suis confus, quelqu'un peut-il me dire comment je peux le faire?
qu'est-ce que 'is_empty'? –
Lorsque vous posez une question sur le débordement de pile, il est important de fournir suffisamment d'informations pour pouvoir y répondre. La première étape que vous devriez faire est d'essayer de réduire votre problème à un plus petit. Vous ne comprenez pas comment 'erase' et' remove_if' fonctionnent; alors créez un petit programme qui utilise ces fonctions, et voyez si vous pouvez obtenir la même erreur. Vous pouvez le faire soit en commençant par votre programme complet et en coupant des pièces, soit en commençant par un programme vide et en ajoutant des parties. Une fois que vous avez un exemple SIMPLE, AUTONOME et COMPLET, vous pouvez alors poser des questions sur ce problème. – Yakk
@ T.C. L'OP a répondu à votre question dans le commentaire ci-dessous: 'std :: is_empty' est ce qu'elle essaie d'utiliser. Bon vieux 'using namespace std', n'est-ce pas horrible? – Yakk