flattened2d#
[tls.flattened2d]
The class template flattened2d
is an adaptor that provides a flattened view of a container of containers.
// Defined in header <oneapi/tbb/enumerable_thread_specific.h>
namespace oneapi {
namespace tbb {
template<typename Container>
class flattened2d {
public:
// Basic types
using size_type = /* implementation-defined */;
using difference_type = /* implementation-defined */;
using allocator_type = /* implementation-defined */;
using value_type = /* implementation-defined */;
using reference = /* implementation-defined */;
using const_reference = /* implementation-defined */;
using pointer = /* implementation-defined */;
using const_pointer = /* implementation-defined */;
using iterator = /* implementation-defined */;
using const_iterator = /* implementation-defined */;
explicit flattened2d( const Container& c );
flattened2d( const Container& c,
typename Container::const_iterator first,
typename Container::const_iterator last );
iterator begin();
iterator end();
const_iterator begin() const;
const_iterator end() const;
size_type size() const;
};
template <typename Container>
flattened2d<Container> flatten2d(const Container &c);
template <typename Container>
flattened2d<Container> flatten2d(
const Container &c,
const typename Container::const_iterator first,
const typename Container::const_iterator last);
} // namespace tbb
} // namespace oneapi
Requirements:
A
Container
type must meet the container requirements from the [container.requirements.general] ISO C++ section.
Iterating from begin()
to end()
visits all of the elements in the inner containers.
The class template supports forward iterators only.
The utility function flatten2d
creates a flattened2d
object from a specified container.
Member functions#
-
explicit flattened2d(const Container &c)#
Constructs a
flattened2d
representing the sequence of elements in the inner containers contained by outer container c.Safety: these operations must not be invoked concurrently on the same
flattened2d
.
-
flattened2d(const Container &c, typename Container::const_iterator first, typename Container::const_iterator last)#
Constructs a
flattened2d
representing the sequence of elements in the inner containers in the half-open interval[first, last)
of a containerc
.Safety: these operations must not be invoked concurrently on the same
flattened2d
.
-
size_type size() const#
Returns the sum of the sizes of the inner containers that are viewable in the
flattened2d
.Safety: These operations may be invoked concurrently on the same
flattened2d
.
-
iterator begin()#
Returns
iterator
pointing to the beginning of the set of local copies.
-
iterator end()#
Returns
iterator
pointing to the end of the set of local copies.
-
const_iterator begin() const#
Returns
const_iterator
pointing to the beginning of the set of local copies.
-
const_iterator end() const#
Returns
const_iterator
pointing to the end of the set of local copies.
Non-member functions#
-
template<typename Container>
flattened2d<Container> flatten2d(const Container &c, const typename Container::const_iterator b, const typename Container::const_iterator e)# Constructs and returns a
flattened2d
object that provides iterators that traverse the elements in the containers within the half-open range[b, e)
of a containerc
.