transform(mystr.begin(), mystr.end(), mystr.begin(), tolower);
Sto usando la funzione di trasformazione per trasformare una stringa in tutte le lettere minuscole, ma anche dopo aver scritto "using namespace std;" nella parte superiore del mio programma ottengo un sacco di errori (quando scritto come sopra). Quando includo l'operatore :: prima del parametro tolower (come di seguito) non lo faccio. Perchè è questo? Pensavo che la funzione tolower fosse nello spazio dei nomi std e funzionasse come sopra.:: operatore necessario per usare con tolower()?
transform(mystr.begin(), mystr.end(), mystr.begin(), ::tolower);
ho la seguente include:
#include <iostream>
#include <fstream
#include <sstream>
#include <algorithm>
#include <vector>
Nel messaggio di errore vedo:
error: no matching function for call to 'transform(std::basic_string<char>::iterator, ...
allora il luogo in cui 'tolower' è nella lista dei parametri
, <unresolved overloaded function type>);'
Quando hai "un sacco di errori" è utile dire esattamente quello che sono. –