Robert, On 03/28/2014 07:46 PM, Robert Lupton the Good wrote: >> 1) std::list --> std::vector >> - why? Default now is vector, iterating over vector >> is much more efficient than over list >> - reason why we use lists: want to convey the intent >> (put things in the end, remove from the end etc), >> yes can be implemented through vector >> - revisit on case by case bases, do not blindly replace >> - preferred solution: typedef, and name it in a way that >> conveys the intent (e.g., might call it a "container"), >> underneath use vector > If you just want to insert at each end, isn't a dequeue better? And see Meyers "Effective STL" on why it may not be a good idea to typedef a container --- he certainly thinks that you should choose the STL type and expose it. The point was to use a typedef (e.g., FooContainer) to convey the intent of code that just needs a dumb container of Foo whose implementation is not important. Meyers seems to think it's useless to write container-independent code, but also suggests typedefs for encapsulating the selection of the STL type. Okay, he does say one should carefully consider all the options, and disagrees with the C++ standard's recommendation of vector as the default. I'm starting to be convinced by AndyS's argument that we should just choose vector, but I still feel like I want to convey the intent of "I just need a container for Foo; not sure what the best container is; haven't done the study." -Daniel ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the QSERV-L list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1