Archived
This forum has been archived. Please start a new discussion on GitHub.
a problem about how to modify a value at the iterator’s current position!
first i define a struct and a sequence in ice file.
struct stCommMess
{
string sUserId;
string sMessage;
};
sequence <stCommMess> seqMessList;
then build a freeze map,UserIdMessageMap, the key_value is string ,and the map_value is seqMessList.
when i would like to modify the map_value ,i have to do like this:
...
UserIdMessageMap::iterator p,
seqMessList b = p->second;
b.push_back(a);//a is object of stCommMess
p.set(b);
....
a simple push_back operate has to do like that ,as a low efficient operate.
is there another method to insert the stCommMess into the map?
struct stCommMess
{
string sUserId;
string sMessage;
};
sequence <stCommMess> seqMessList;
then build a freeze map,UserIdMessageMap, the key_value is string ,and the map_value is seqMessList.
when i would like to modify the map_value ,i have to do like this:
...
UserIdMessageMap::iterator p,
seqMessList b = p->second;
b.push_back(a);//a is object of stCommMess
p.set(b);
....
a simple push_back operate has to do like that ,as a low efficient operate.
is there another method to insert the stCommMess into the map?
0
Comments
-
Your code is correct, and unfortunately Freeze does not offer a more efficient way to perform such updates. I started an internal discussion on this issue.
Best regards,
Bernard0