Hello.
I'm trying to update the data of a left bimap and I keep getting this
error message:
error: assignment of read-only data-member
‘boost::bimaps::relation::detail::normal_storage,
boost::bimaps::tags::tagged >::second’
Here is what I'm doing:
int idx = 0;
double score = 0.0;
typedef boost::bimap bm_type; // define the bimap type we
will use
bm_type bm;
bm_type::right_iterator r_iter;
bm_type::left_iterator l_iter;
bm.insert( bm_type::value_type( 1, 93.9) );
bm.insert( bm_type::value_type( 2, 18.3) );
bm.insert( bm_type::value_type( 3, 4.54) );
bm.insert( bm_type::value_type( 4, 0.343) );
score = 60000.0343;
idx = 3;
l_iter = bm.left.find(idx);
if(l_iter == bm.left.end()) { // this is a new entry so add it
bm.insert( bm_type::value_type( idx, score) );
}
else { // we have this idx value in the bimap
// update the bimap score value only if the current value
// of score is greater than what is currently in the bimap
// for the same index (idx) value.
if( l_iter->second < score ) {
l_iter->second = score;
}
}
Can someone tell me what I'm doing wrong?
The double value in the map is the only part that needs to be updated
and only if a new (higher) score is observed.
Thanks,
Damian
--
------------------------------------------------------------------------------
Damian Fermin, Ph.D.
Pathology Department
University of Michigan
4237 Medical Science I
1301 Catherine
Ann Arbor, MI 48109-0602
734.615.0302
"There is No Gene for the Human Spirit"
-- GATTACA
------------------------------------------------------------------------------