2016-12-04 3 views
-2

私はSTL関数transformを使用して、セット内のすべての文字列を小文字に変換しようとしています。しかし、私はC2664のエラーを得ました。私のコードで何が間違っているのだろう?を小文字のC++に変換するerrorC2664

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

[タグ情報](http://stackoverflow.com/tags/c2664/info)では説明が十分ではありませんか? –

+0

1. 'set 'の各イテレータは(セットに格納されているものは)どのようなタイプですか? 2.「tolower」が期待するタイプは何ですか? – Pixelchemist

+0

@Pixelchemist 'ostream_iterator 出力(cout、 "\ n");' –

答えて

0
  1. あなたはtolowerstd::stringを渡すことはできません。
  2. イテレータはconstです。 setに挿入する代わりに、あなたがソートされたコンテナにすべての要素を再挿入することで時間を無駄にする必要があると思いますので、後でそれを変更するとき

したがって、あなたはおそらく、各stringtolowerを適用する必要があります。

関連する問題