SLIP  1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Iterations through 1d containers

Introduction

Here, we present various ways to computes the mean of 1d container denoted S1d. It illustrates the different uses to iterate through monodimensional containers Group of Containers like slip::block , slip::Array, slip::Vector...

The classical loop

1d_iterator.png
double mean = 0.0;
const std::size_t size = S1.size();
for(std::size_t j = 0; j < size; ++j)
{
mean += S1d[j]; //or equivalently: mean += S1d(j);
}
mean /= double(size);

Global iterators

These iterators follow the RandomAccessIterator concept of the standard library.

Direct iteration

1d_iterator.png
double m = slip::mean<double>(S1d.begin(),S1d.end());

Reverse iteration

1d_reverse_iterator.png
double m = slip::mean<double>(S1d.rbegin(),S1d.rend());

Range iterators

These iterators follow the RandomAccessIterator concept of the standard library.

Range direct iterator

1d_stride_iterator.png
slip::Range<int> range(0,10,2);
double m = slip::mean<double> (S1d.begin(range),S1d.end(range));

Range reverse iterator

slip::Range<int> range(0,10,2);
double m = slip::mean<double> (S1d.rbegin(range),S1d.rend(range));