J'essaie d'améliorer les performances de mon lecteur de texte en clair en utilisant nmap pour mapper le fichier en mémoire. Actuellement, j'ai une fonction qui reçoit const char * et la longueur de ce tableau. Et j'ai besoin d'effectuer une recherche sur ce tableau char.comment exécuter std :: find sur const char *
C'est ce que je currenly ai
void parseVertex(
const char * line,
unsigned int length,
std::vector<glm::vec3> & vertices)
{
if(length == 0)
{
return;
}
char space = ' ';
char * pos = std::find(line, line + length, space);
}
std::find
produit erreur: une valeur de type * const char ne peut pas être utilisé pour initialiser une entité de type char *
Quelle est la bonne façon utiliser std::find
?
Eh bien, est-ce pas ** un peu ** suspect? Est-ce que vous vous souciez de l'exactitude de const? –
Ce n'est pas réellement nessesery mais j'essaye d'apprendre comment protéger des variables de l'édition par accident, dans cette ligne de code ne devrait pas être changé ainsi il y a 'const' – insanebits
vous êtes sur la bonne voie et vous devriez par tout signifie être en train de faire ça. C'est juste que vous devez garder à l'esprit que 'std :: find()' renvoie un pointeur à partir de la chaîne d'origine si trouvée (bien sûr), donc la chaîne d'origine était composée de 'const char's, la valeur de retour devrait aussi pointez sur 'const char', car si ce n'était pas le cas, il serait possible de modifier la chaîne via le pointeur retourné, et c'est une violation de contrainte. –