Add group value iterators operator-

This commit is contained in:
Nikita Lisitsa 2023-03-16 20:09:32 +03:00
parent ef6ef081d8
commit 0633aacc63
2 changed files with 12 additions and 2 deletions

View file

@ -52,7 +52,7 @@ namespace psemek::group
struct value_iterator struct value_iterator
{ {
using difference_type = int; using difference_type = Repr;
using value_type = cyclic<N, Repr>; using value_type = cyclic<N, Repr>;
using pointer = value_type *; using pointer = value_type *;
using reference = value_type &; using reference = value_type &;
@ -75,6 +75,11 @@ namespace psemek::group
{ {
return it1.repr == it2.repr; return it1.repr == it2.repr;
} }
friend auto operator - (value_iterator const & it1, value_iterator const & it2)
{
return it2.repr - it1.repr;
}
}; };
static auto values() static auto values()

View file

@ -84,7 +84,7 @@ namespace psemek::group
struct value_iterator struct value_iterator
{ {
using difference_type = int; using difference_type = Repr;
using value_type = dihedral<N, Repr>; using value_type = dihedral<N, Repr>;
using pointer = value_type *; using pointer = value_type *;
using reference = value_type &; using reference = value_type &;
@ -107,6 +107,11 @@ namespace psemek::group
{ {
return it1.repr == it2.repr; return it1.repr == it2.repr;
} }
friend auto operator - (value_iterator const & it1, value_iterator const & it2)
{
return it2.repr - it1.repr;
}
}; };
static auto values() static auto values()