-2

我正在尝试使用 STL 函数transform将集合中的所有字符串转换为小写。但是我收到了 C2664 的错误。我想知道我的代码有什么问题?

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

1 回答 1

0
  1. 您不能将 a 传递std::stringtolower
  2. C++11set迭代器是const.

因此,您可能应该在将其插入时应用tolower每个元素,而不是事后更改它,因为您必须通过将每个元素重新插入已排序的容器来浪费时间。stringset

于 2016-12-05T00:19:17.353 回答