|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
107 for (
int i = 0; i < card; ++i) {
120 template<
typename ContainerType>
187 for (i = t - 1;
m_index[i] == i + n - t; --i) {
197 for (++
m_index[i]; i < t - 1; ++i) {
225 std::function<
void(
const T&)> funcNotIn)
const {
237 template<
typename ContainerType>
239 std::function<
void(ContainerType&, T)> func)
const {
241 [&](
const T& nonmember) { func(complement, nonmember); });
246 getSubsetAndComplement<List<T>>(subset, complement,
251 bool testForAll(std::function<
bool(
const T&)> predicate)
const {
261 void print(std::ostream& os,
string delim =
" ")
const {
265 for (
int i = 1; i <
size(); ++i) {
270 os <<
"<<invalid subset>>";
The namespace for all OGDF objects.
int size() const
Returns the cardinality of the subset.
Declaration and implementation of ArrayBuffer class.
Enumerator for k-subsets of a given type.
void array(Array< T > &array) const
Obtains an array of the subset members.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
void begin(int card)
Initializes the SubsetEnumerator to enumerate subsets of given cardinality.
void begin(int low, int high)
Initializes the SubsetEnumerator to enumerate subsets of cardinalities from low to high.
bool valid() const
Checks if the current subset is valid. If not, the subset is either not initialized or all subsets ha...
void init()
Reinitializes the array to an array with empty index set.
void print(std::ostream &os, string delim=" ") const
Prints subset to output stream os using delimiter delim.
SubsetEnumerator(const ContainerType &set)
Constructor.
void begin()
Initializes the SubsetEnumerator to enumerate all subsets.
bool hasMember(const T &element) const
Checks in O(subset cardinality) whether element is a member of the subset.
void list(List< T > &subset) const
Obtains (appends) a list of the subset members.
ArrayBuffer< T > m_subset
INDEX size() const
Returns number of elements in the buffer.
void getSubsetAndComplement(ContainerType &subset, ContainerType &complement, std::function< void(ContainerType &, T)> func) const
Obtains a container of the subset members and a container of the other elements of the set.
void push(E e)
Puts a new element in the buffer.
std::ostream & operator<<(std::ostream &os, const ogdf::Array< E, INDEX > &a)
Prints array a to output stream os.
void list(List< T > &subset, List< T > &complement) const
Obtains (appends) a list of the subset members and a list of the other elements of the set.
Doubly linked lists (maintaining the length of the list).
void initSubset(int card)
void forEachMemberAndNonmember(std::function< void(const T &)> funcIn, std::function< void(const T &)> funcNotIn) const
Calls funcIn for each subset member and funcNotIn for each other element of the set.
T operator[](int i) const
Gets a member of subset by index (starting from 0).
Basic declarations, included by all source files.
Declaration and implementation of Array class and Array algorithms.
void next()
Obtains the next subset if possible. The result should be checked using the valid() method.
void forEachMember(std::function< void(const T &)> func) const
Calls func for each member in the subset.
INDEX size() const
Returns the size (number of elements) of the array.
bool testForAll(std::function< bool(const T &)> predicate) const
Tests predicate for all subset members.
iterator pushBack(const E &x)
Adds element x at the end of the list.
int numberOfMembersAndNonmembers() const
Returns the cardinality of the (super-)set. This is the maximum size that can be used for a subset.