Am 24.02.2008 um 12:50 schrieb Andre Poenitz:

On Sun, Feb 24, 2008 at 11:52:04AM +0100, Stefan Schimanski wrote:

Am 24.02.2008 um 11:14 schrieb Andre Poenitz:

On Sat, Feb 23, 2008 at 11:33:18PM +0100, Stefan Schimanski wrote:
Hi!

I would like to use the multi_index classes from the boost library.
Unfortunately this is not in the boost version we have in svn. Is it just
old or do we have only a selection of boost modules?

We only bundle those parts of boost that we actively use, so if you
really need it, we would add it...

However, you'll have a hard time to convince me that it is "really needed" without a bit more detailed analysis. I've seen your five(?) requirements,
yet I've not seen profiler data proving that a "more traditional"
approach is inappropriate.

I fact I very much doubt now that multi_index is the right tool. It does not give the log-time random-access I need. It has random-access iterators
for lists, but they do not use the alphabetic order. I have done some
googling yesterday, but without success to find anything for C++. It seems
I need my own rb-tree with weights implementation :-/

Have you profile data using a plain std::set?  Is it really bad?

Random access is linear with sets. QCompleter needs this, and even in the case of sorted completions (where a binary search is possible) it will search the first element matching a prefix which is O(log n)*O(n) operation then. This is just to find the first element in the popup. Then following lookups can be accelerated by caching the iterator. But still, O(n) would be already quite a lot IMO.

But get real numbers, I will implement this version now. Let's see...

Stefan

Reply via email to