У меня возникли проблемы с использованием for_each
, я могу выполнить работу с помощью цикла for, но для понимания я мог бы использовать некоторую помощь с объяснением ... У меня есть следующие функции до сих пор ...for_each с tolower
void clean_entry(const string& orig, string& cleaned) {
size_t start = 0;
size_t end = 0;
while(!isalnum(orig[start]) && start < orig.length())
start++;
end = start;
while(isalnum(orig[end]) && end < orig.length())
end++;
cleaned = orig.substr(start,(end-start));
// I want to replace the following lines with a for_each loop
string::iterator iter;
for(iter = cleaned.begin(); iter != cleaned.end(); iter++)
*iter = tolower(*iter);
}
в своих попытках реализовать цикл for_each за последние три строки кода в функции выше, я попробовал следующее, который дал мне ошибку компиляции ...
struct {
void operator()(string::iterator strIter) {
*strIter = tolower(*strIter);
}
} lower;
for_each(cleaned.begin(),cleaned.end(),lower);
У вас есть C++ 11 (т. Е. Лямбда), доступный для вас? – us2012