I get the following error message:
"expression must be a modifiable lvalue iter->first = iter->second;"
for the code:
func( const std::set<Edge> &obstructEdges1,
const std::set<Edge> &obstructEdges2 )
{
std::set<Edge> obstructEdges = obstructEdges1;
obstructEdges.insert( obstructEdges2.begin(), obstructEdges2.end() );
for ( std::set<Edge>::iterator iter = obstructEdges.begin();
iter != obstructEdges.end(); iter++ )
{
if ( iter->first > iter->second )
{
int t = iter->first;
iter->first = iter->second;
iter->second = t;
}
...
Edge
is a pair of ints. What's wrong? Looks like iter->first
is considered const
for some reason.