Difference between revisions of "Cpp Coding Standards/STL"
From Apache OpenOffice Wiki
m |
m |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == The C++ Standard Template Library == | + | == The C++ Standard Template Library (STL) == |
− | Use and pitfalls of the C++ STL. | + | ''Use and pitfalls of the C++ STL.'' |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | 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. | + | ===== 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::vector (or in very rare cases std::list) instead of DECLARE_LIST etc.<br> | ||
+ | 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.<br> | ||
+ | In most cases vector is the best choice for a container.<br> | ||
+ | You can use vector (and the c_str() function of string classes) to exchange data with non-C++ APIs.<br> | ||
+ | [[/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]] | |
− | ==== | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Make predicates pure functions, when used in STL algorithms. | + | |
− | + | ||
− | - | + | |
− | + | ||
---- | ---- | ||
[[Category:Coding Standards]] | [[Category:Coding Standards]] |
Latest revision as of 09:28, 23 May 2007
Contents
The C++ Standard Template Library (STL)
Use and pitfalls of the C++ STL.
Prefer STL Containers (Cont)
Use STL containers instead of self-made types. In particular, use std::vector instead of Sv*Arrays, std::vector (or in very rare cases 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.
-> Details
Erasing Container Memory (EraseMem)
Use the standard idiom to shrink the memory footprint of STL containers. -> Details
Pure Predicates (PurePred)
Make predicates pure functions, when used in STL algorithms. -> Details