<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Would a method which swapped two elements of an MSet provide what you<br>
need?  That would provide a more generic way to adjust the ranking of<br>
an MSet which for example could be used to implement a diversification<br>
feature or something like SQL "GROUP BY".<br></blockquote><div><br></div><div>In addition to a method which swapped two elements of an MSet, what is a required is a method that could update the weights of all MSetItem in an MSet with the ones returned by letor. A method void MSetIterator::set_weight(double letor_wt) could do that.</div><div><br></div><div>Once the weights have been updated, I could use void MSet::exchange(MSetIterator &, MSetIterator &b) to write a sorting method as part of any letor class to sort the MSet elements by weights, or maybe as MSet::sort() method which performs this sorting directly, whichever way it presents a broader use-case to users.</div><div><br></div><div>What do you think?</div><div><br></div><div>Regards,</div><div>Ayush</div></div><br clear="all"><div><br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"></div></div></div></div></div></div></div></div></div>
</div></div>