在一组转换为小写 C++ 错误 C2664
in a set transform to lowcase 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);
- 您不能将
std::string
传递给 tolower
。
- C++11
set
迭代器是 const
.
因此,在将每个 string
插入 set
时,您可能应该将 tolower
应用于每个 string
而不是事后更改它,因为您必须重新插入每个元素来浪费时间放入分类容器中。
我正在尝试使用 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
。 - C++11
set
迭代器是const
.
因此,在将每个 string
插入 set
时,您可能应该将 tolower
应用于每个 string
而不是事后更改它,因为您必须重新插入每个元素来浪费时间放入分类容器中。