所以我看到了很多类似的问题,但没有一个答案正在解决我的问题。有人可以解释为什么这个代码:
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 {
答案 0 :(得分:3)
您的方法应该返回字符串,而是尝试从std :: transform返回迭代器。将其更改为:
string LinkedListByName::toLower(string stringToConvert){
std::transform(stringToConvert.begin(), stringToConvert.end(), stringToConvert.begin(), ::tolower);
return stringToConvert;
}