template<typename TElementType, typename TPointType, typename TContainerType = std::vector<TPointType>>
struct libsemigroups::OnSets

Defined in adapters.hpp.

This is struct applies OnTuples<TElementType, TPointType, TContainerType> to a container of TContainerType and then sorts it.

Template Parameters
  • TElementType – the type of elements

  • TPointType – the type of the points acted on

  • TContainerType – a container of TPointType (defaults to std::vector with template parameter TPointType).

Public Functions

inline void operator()(TContainerType &res, TContainerType const &pt, TElementType const &p) const

This call operator changes res in-place to contain the image of the container pt of points of type TPointType, under the induced (left or right) action of the element x.

The purpose of the 1st parameter is to avoid repeated allocations of memory to hold temporary points that are discarded soon after they are created.

See also

OnTuples and ImageRightAction.


pt.size() times the complexity of ImageRightAction<TElementType, TPointType> and the cost plus the complexity of sorting res.

  • res – a container of TPointType (such as std::vector or std::array) to hold the result

  • pt – a container of TPointType

  • p – an element of type TElementType