Так что я видел много подобных проблем, но ни один из ответов не решает мою проблему. Может кто-нибудь объяснить, почему этот код:
string LinkedListByName::toLower(string stringToConvert){
return std::transform(stringToConvert.begin(), stringToConvert.end(), stringToConvert.begin(), ::tolower); }
дает мне эту ошибку:
conversion from `__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >' to non-scalar type `std::string' requested
В проекте мне нужно будет преобразовать много строк в более низкие, и повышение НЕ является опцией. Я буквально скопировал и вставил этот код из предыдущих проектов, в которых он функционировал.
Кроме того, заголовочный файл включает в себя следующее:
#include <vector>
using namespace std;
#include <iostream>
using namespace std;
#include <string>
using namespace std;
#include <algorithm>
#include "Node.h"namespace model {
Ваш метод должен возвращать строку, но вместо этого вы пытаетесь вернуть итератор из std :: transform. Измените это на это:
string LinkedListByName::toLower(string stringToConvert){
std::transform(stringToConvert.begin(), stringToConvert.end(), stringToConvert.begin(), ::tolower);
return stringToConvert;
}
Других решений пока нет …