Vec
template<typename T, std::size_t L>
struct Vec;
In many respects, Vec behaves a lot like std::array<>, but with support for mathematical operations.
Member types
| Member Type | Definition |
|---|---|
value_type |
T |
Member functions
| Member | Behavior |
|---|---|
| (constructor) | initalize using aggregate initialization |
| (destructor) | destroy every element in the vectpr |
| operator= | ovewrite the vector with another vector |
| at | access specific element with bounds checking |
| operator[] | access specific element |
| data | access underlying array |
Non-member functions
Language support
| Function | Behavior |
|---|---|
| begin | iterator to the beginning |
| end | iterator to the end |
| operator<< | print to stream |
Per-member operations
| Function | Behavior |
|---|---|
| operator== | compares two vectors for equality |
| operator!= | compares two vectors for inequality |
| operator-= | per-member substraction |
| operator+= | per-member addition |
| operator*= | per-member multiplication |
| operator/= | per-member division |
| operator- | per-member substraction |
| operator+ | per-member addition |
| operator* | per-member multiplication |
| operator/ | per-member division |
| abs | per-member abs() |
| min | per-member min() |
| max | per-member max() |
Unary operations
| Function | Behavior |
|---|---|
| operator-(unary) | negation |
Scalar operations
| Function | Behavior |
|---|---|
| operator/=(scalar) | vector scaling |
| operator*=(scalar) | vector scaling |
| operator/(scalar) | vector scaling |
| operator*(scalar) | vector scaling |
Geometric functions
| Function | Behavior |
|---|---|
| lenght | get vector's L2 norm |
| dot | dot product |
| cross | cross product |