On 6 October 2013 23:43, Tim Shen wrote: > Here's a simple piece of code > https://gist.github.com/innocentim/6849759 the reveals _BFSExecutor's > inefficiency. Some optimizations are here to reduce the unecessary > time complexity from O(n^2) to O(n). > > I'll do a bootstrap and full testing before committing.
In the ChangeLog, please fix the spelling of "unnecessary". The constructor of _TodoList could be "explicit" Does _TodoList really need to derive from std::vector<_StateIdT> or could it just have a second member? I think there's no benefit to using inheritance here. _TodoList::__exists should be named _M_exists to follow the library coding standards. Shouldn't _TodoList::_M_empty() also set __exists[n] = false for all n? I think it's guaranteed that __exists[__u] is always in range, right?