Difference between revisions of "Cpp Coding Standards/STL"

From Apache OpenOffice Wiki
Jump to: navigation, search
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.''
----
+
=== Summary ===
+
==== UseContainers ====
+
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.
+
===== 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]]
  
In most cases vector is the best choice for a container.
+
===== Erasing Container Memory <span id="EraseMem">(EraseMem)</span> =====
 +
Use the standard idiom to shrink the memory footprint of STL containers. [[/EraseMem|-> Details]]
  
You can use vector (and the c_str() function of string classes) to exchange data with non-C++ APIs.
+
===== Pure Predicates <span id="PurePred">(PurePred)</span> =====
 
+
Make predicates pure functions, when used in STL algorithms. [[/PurePred|-> Details]]
==== UseAlgorithms ====
+
Prefer STL algorithm calls to handwritten loops.
+
 
+
==== Erase ====
+
Use the standard idiom to shrink the memory footprint of STL containers
+
 
+
==== PurePredicates ====
+
Make predicates pure functions, when used in STL algorithms.
+
 
+
----
+
=== Explanations ===
+
  
 
----
 
----
 
[[Category:Coding Standards]]
 
[[Category:Coding Standards]]

Latest revision as of 09:28, 23 May 2007

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


Personal tools