--- mehri <
foreverlinux@...> escreveu:
> > Not if the (key, value) pairs are sorted
> > appropriately, something you can do with std::map,
> > admitedly with some extra work.
>
> Hmmm....This stumped me for a second.
>
> But what you are talking about is changing the
> comparison operator for the keys correct? So the
> map is ordered with higher frequency tags closer to
the
> begining.
Yes, that is the idea. Actually with a reasonably good
comparison operator, you could achieve better
assintotic time with this approach than with a
conditional chain -- whose time is O(n/2) in the
normal case, whereas a binary tree search would yield
O(lg n/2).
> What I do have a question about for this methodology
> would be this portion of your pseudocode:
>
> > class CategoryRegister
> > {
> > public:
> > CategoryRegister()
> > {
> > factories["Category"] = newCategory;
> > }
> > }
>
> You still have to write the "new Category" in a
> seperate class for registeration? Regardless of how
> well you design your subclass you still have to go
> to a different class to add code?
>
> That's my hangup. No matter how clever, you still
> have go outside of your subclass to add code for the
> engine to recognize your new Tag class.
In Java, you could write the registration code into a
static block, which would be executed at
class-loading time. C++ doesn't have such a feature as
far as I know, so we have to hack it with static field
initialization. You could conceivably move the
registration code (class and field) into the tag
class, but I can't see exactly what that would buy us,
with the possible exception of better-looking code.
_______________________________________________________
Yahoo! doce lar. Faça do Yahoo! sua homepage.
http://br.yahoo.com/homepageset.html
_______________________________________________
alicebot-developer mailing list
alicebot-developer@...
http://list.alicebot.org/mailman/listinfo/alicebot-developer