Я пытаюсь использовать функцию STL transform
чтобы преобразовать все строки в набор в нижний регистр. Но я получил ошибку C2664. Интересно, что не так с моим кодом?
set<string> mydoc;
mydoc.insert("ABCD");
transform(mydoc.begin(), mydoc.end(), mydoc.begin(), ::tolower);
copy(mydoc.begin(), mydoc.end(), output);
std::string
в tolower
,set
итератор const
,Таким образом, вы должны, вероятно, применить tolower
для каждого string
вставляя его в set
вместо того, чтобы менять его потом, потому что вам придется тратить время, вставляя каждый элемент в отсортированный контейнер.
Других решений пока нет …