string comme parametre constant dans une fonction
je veux passer à travers une string (sans la modifier) pour extraire certaines infos
le code suivant compile:
Code:
1 2 3 4
| bool verifyString (string theString) {
string::iterator start = theString.begin();
string::iterator end = theString.end();
while (start < end) {... start++ ...} |
par contre si j'indique que je passe une string constante dans la fonction:
bool verifyString (const string theString) {...
le compilateur m'indique:
error: conversion from ‘std::basic_string<char>::const_iterator ... to non-scalar type ...
Donc le compilateur considère que j'essaie de modifier une constante en utilisant un iterator!
Pourquoi ?
Est-ce mieux de faire une copie?, d'utiliser une boucle avec un size_t: for (int i = 0; i < theString.length(); i++)...
ou de ne pas passer la string comme constante?