0

そのため、同様の問題をたくさん見てきましたが、私の問題を解決する答えはありません。誰かがこのコードの理由を説明できますか:

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 {
4

1 に答える 1

3

メソッドは文字列を返す必要がありますが、代わりに std::transform から反復子を返そうとします。これを次のように変更します。

string LinkedListByName::toLower(string stringToConvert){
    std::transform(stringToConvert.begin(), stringToConvert.end(), stringToConvert.begin(), ::tolower); 
    return stringToConvert;
}
于 2013-02-24T02:06:14.087 に答える