в наборе преобразовать в нижний регистр c ++ errorC2664

Я пытаюсь использовать функцию STL transform чтобы преобразовать все строки в набор в нижний регистр. Но я получил ошибку C2664. Интересно, что не так с моим кодом?

set<string> mydoc;
mydoc.insert("ABCD");
transform(mydoc.begin(), mydoc.end(), mydoc.begin(), ::tolower);
copy(mydoc.begin(), mydoc.end(), output);

-2

Решение

  1. Вы не можете передать std::string в tolower,
  2. C ++ 11 set итератор const,

Таким образом, вы должны, вероятно, применить tolower для каждого string вставляя его в set вместо того, чтобы менять его потом, потому что вам придется тратить время, вставляя каждый элемент в отсортированный контейнер.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector