Difference between revisions of "Cpp Coding Standards/STL"
From Apache OpenOffice Wiki
m |
|||
Line 1: | Line 1: | ||
− | + | Topic-Id: '''STL''' | |
+ | |||
+ | Use and pitfalls of the C++ STL. | ||
+ | ---- | ||
+ | === Summary === | ||
+ | ==== Prefer STL Containers <span id="Cont">(Cont)</span> ==== | ||
+ | Use STL containers instead of self-made types. In particular, use std::vector instead of Sv*Arrays, std::list instead of DECLARE_LIST etc. | ||
+ | |||
+ | Use std::vector (or an appropriate string class) instead of C-arrays, if there is the slightest chance the array length may ever become variable. | ||
+ | |||
+ | In most cases vector is the best choice for a container. | ||
+ | |||
+ | You can use vector (and the c_str() function of string classes) to exchange data with non-C++ APIs. | ||
+ | |||
+ | [[/Cont|Details]] | ||
+ | |||
+ | ==== Erasing Container Memory <span id="EraseMem">(EraseMem)</span> ==== | ||
+ | Use the standard idiom to shrink the memory footprint of STL containers. | ||
+ | |||
+ | [[/EraseMem|Details]] | ||
+ | |||
+ | ==== Pure Predicates <span id="PurePred">(PurePred)</span> ==== | ||
+ | Make predicates pure functions, when used in STL algorithms. | ||
+ | |||
+ | [[/PurePred|Details]] | ||
+ | |||
+ | ---- | ||
+ | [[Category:Coding Standards]] |
Revision as of 18:50, 22 May 2007
Topic-Id: STL
Use and pitfalls of the C++ STL.
Contents
Summary
Prefer STL Containers (Cont)
Use STL containers instead of self-made types. In particular, use std::vector instead of Sv*Arrays, std::list instead of DECLARE_LIST etc.
Use std::vector (or an appropriate string class) instead of C-arrays, if there is the slightest chance the array length may ever become variable.
In most cases vector is the best choice for a container.
You can use vector (and the c_str() function of string classes) to exchange data with non-C++ APIs.
Erasing Container Memory (EraseMem)
Use the standard idiom to shrink the memory footprint of STL containers.
Pure Predicates (PurePred)
Make predicates pure functions, when used in STL algorithms.