私は次のコードを持っています - :
int main()
{
set<string> s;
s.insert( "asas" );
s.insert( "abab" );
for ( auto item : s )
{
cout << item << "\n";
reverse( item.begin(), item.end() );
}
cout << "\n";
for ( auto item : s )
{
cout << item << "\n";
}
}
出力 -:
abab
asas
abab
asas
セットの要素は、関数によってまったく変更されていませんreverse()
。
セット内の要素はまったく変更できないと思います。しかし、これが事実である場合、そもそもなぜコンパイラ自体がエラーを出さないのでしょうか?
-std=c++14
Windows 7 でフラグ付きの TDM-GCC 4.9.2 を使用しています。