It should be part of the documentation in the .h file that this takes linear time. Same for the remove function now you are at it.
LGTM 2009/3/4 <[email protected]>: > Reviewers: Erik Corry, > > Message: > It's not called anywhere yet, but I'll need it. Order of arguments was > chosen to be the same as the STL list insert. > > Description: > Add an insert function to our list utility class. > > Please review this at http://codereview.chromium.org/40105 > > SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ > > Affected files: > M src/list-inl.h > M src/list.h > > > Index: src/list.h > =================================================================== > --- src/list.h (revision 1407) > +++ src/list.h (working copy) > @@ -79,6 +79,11 @@ > // until the next change is made to this list. > Vector<T> AddBlock(const T& value, int count); > > + // Inserts a copy of the given element at index i in the list. All > + // elements formerly at or above i are moved up and the length of > + // the list increases by one. > + T& Insert(int i, const T& element); > + > // Removes the i'th element without deleting it even if T is a > // pointer type; moves all elements above i "down". Returns the > // removed element. > Index: src/list-inl.h > =================================================================== > --- src/list-inl.h (revision 1407) > +++ src/list-inl.h (working copy) > @@ -59,6 +59,18 @@ > > > template<typename T, class P> > +T& List<T, P>::Insert(int i, const T& element) { > + int free_index = length_ - 1; > + Add(last()); // Add grows the list if necessary. > + while (free_index > i) { > + data_[free_index] = data_[free_index - 1]; > + free_index--; > + } > + data_[free_index] = element; > +} > + > + > +template<typename T, class P> > T List<T, P>::Remove(int i) { > T element = at(i); > length_--; > > > -- Erik Corry, Software Engineer Google Denmark ApS. CVR nr. 28 86 69 84 c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018 Copenhagen K, Denmark. --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
