#include <taskflow/utility/small_vector.hpp>
template<typename T, unsigned N = 2>
SmallVector class
class to define a vector optimized for small array
Template parameters | |
---|---|
T | data type |
N | threshold of the number of elements in the initial storage |
The class defines a C++ STL-styled vector (a variable-sized array) optimized for the case when the array is small. It contains some number of elements in-place, which allows it to avoid heap allocation when the actual number of elements is below that threshold. This allows normal small cases to be fast without losing generality for large inputs. All the methods in std::
The class is stripped from the LLVM codebase.
Constructors, destructors, conversion operators
- SmallVector()
- constructs an empty vector
- SmallVector(size_t Size, const T& Value = T()) explicit
- constructs a vector with
Size
copies of elements with valuevalue
-
template<typename ItTy>SmallVector(ItTy S, ItTy E)
- constructs a vector with the contents of the range
[S, E)
-
SmallVector(std::
initializer_list<T> IL) - constructs a vector with the contents of the initializer list
IL
- SmallVector(const SmallVector& RHS)
- constructs the vector with the copy of the contents of
RHS
- SmallVector(SmallVector&& RHS)
- constructs the vector with the contents of
RHS
using move semantics - SmallVector(SmallVectorImpl<T>&& RHS)
- constructs a vector with the contents of
RHS
using move semantics
Public functions
- auto operator=(const SmallVector& RHS) -> const SmallVector&
- replaces the contents with a copy of the contents of
RHS
- auto operator=(SmallVector&& RHS) -> const SmallVector&
- replaces the contents with the contents of
RHS
using move semantics - auto operator=(SmallVectorImpl<T>&& RHS) -> const SmallVector&
- replaces the contents with the contents of
RHS
using move semantics -
auto operator=(std::
initializer_list<T> IL) -> const SmallVector& - replaces the contents with the copy of the contents of an initializer list
IL