我有以下代码-:
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。