tgen
Loading...
Searching...
No Matches

Permutation value. More...

Inheritance diagram for tgen::permutation::value:

Public Member Functions

 value (const std::vector< int > &vec)
 Creates a permutation value from a std::vector.
int size () const
 Returns the size of the permutation value.
const int & operator[] (int idx) const
 Returns the value at some position of the value.
int parity () const
 Parity of the permutation.
valuesort ()
 Sorts the value in non-decreasing order.
valuereverse ()
 Reverses the value.
valueinverse ()
 Inverse of the permutation.
valueseparator (char sep)
 Sets separator for printing.
valueadd_1 ()
 Adds 1 for printing.
std::vector< int > to_std () const
 Converts the value to a std::vector.
Public Member Functions inherited from tgen::gen_value_base< value >
bool operator< (const value &rhs) const

Friends

std::ostream & operator<< (std::ostream &out, const value &inst)
 Prints the value to a std::ostream.

Detailed Description

Permutation value.

It can be deterministically operated upon and printed through std::cout.

Definition at line 1757 of file tgen.h.

Constructor & Destructor Documentation

◆ value()

tgen::permutation::value::value ( const std::vector< int > & vec)
inline

Creates a permutation value from a std::vector.

Parameters
vecThe std::vector representing the value.

Examples

// Creates and prints a value from a std::vector.
std::vector<int> v = {0, 1, 2};
std::cout << inst << std::endl; // Prints "0 1 2".
// Also works with conversions, and std::initializer_list<T>.
inst = {1, 0};
std::cout << inst.add_1() << std::endl; // Prints "2 1".
Permutation value.
Definition tgen.h:1757

Definition at line 1765 of file tgen.h.

Member Function Documentation

◆ add_1()

value & tgen::permutation::value::add_1 ( )
inline

Adds 1 for printing.

This makes it so, when given to std::cout, the permutation will be printed as 1-based.

Complexity

O(1).

Examples

// Prints a 1-based permutation.
tgen::permutation::value inst = {2, 0, 1};
std::cout << inst.add_1() << std::endl; // Prints "3 1 2".
value & add_1()
Adds 1 for printing.
Definition tgen.h:1842

Definition at line 1842 of file tgen.h.

◆ inverse()

value & tgen::permutation::value::inverse ( )
inline

Inverse of the permutation.

The inverse of the permutation p is another pi such that pi[p[i]] = p[pi[i]] = i.

Complexity

O(n).

Examples

// Prints inverse of permutation.
tgen::permutation::value inst = {2, 0, 1};
std::cout << inst.inverse() << std::endl; // Prints "1 2 0".
value & inverse()
Inverse of the permutation.
Definition tgen.h:1825

Definition at line 1825 of file tgen.h.

◆ operator[]()

const int & tgen::permutation::value::operator[] ( int idx) const
inline

Returns the value at some position of the value.

Parameters
idxIndex to be accessed.
Returns
The value at index idx.

Examples

// Prints a position of a value.
tgen::permutation::value inst = {2, 0, 1};
std::cout << inst[1] << std::endl; // Prints "0".

Definition at line 1786 of file tgen.h.

◆ parity()

int tgen::permutation::value::parity ( ) const
inline

Parity of the permutation.

Returns
+1 if the permutation is even, or -1 if the permutation is odd.

Examples

// Prints parity of permutation.
tgen::permutation::value inst = {2, 0, 1};
std::cout << inst.parity() << std::endl; // Prints "1".
int parity() const
Parity of the permutation.
Definition tgen.h:1794

Definition at line 1794 of file tgen.h.

◆ reverse()

value & tgen::permutation::value::reverse ( )
inline

Reverses the value.

Complexity

O(n).

Examples

// Reverses and prints a value.
tgen::permutation::value inst = {2, 0, 1};
std::cout << inst.reverse() << std::endl; // Prints "1 0 2".
value & reverse()
Reverses the value.
Definition tgen.h:1818

Definition at line 1818 of file tgen.h.

◆ separator()

value & tgen::permutation::value::separator ( char sep)
inline

Sets separator for printing.

Complexity

O(1).

Examples

// Prints a permutation, separated by commas.
tgen::permutation::value inst = {2, 0, 1};
std::cout << inst.separator(',') << std::endl; // Prints "2,0,1".
value & separator(char sep)
Sets separator for printing.
Definition tgen.h:1835

Definition at line 1835 of file tgen.h.

◆ size()

int tgen::permutation::value::size ( ) const
inline

Returns the size of the permutation value.

Returns
The size (number of elements) of the permutation value.

Examples

// Prints the size of a value.
tgen::permutation::value inst = {0, 1, 2};
std::cout << inst.size() << std::endl; // Prints "3".
int size() const
Returns the size of the permutation value.
Definition tgen.h:1783

Definition at line 1783 of file tgen.h.

◆ sort()

value & tgen::permutation::value::sort ( )
inline

Sorts the value in non-decreasing order.

Complexity

O(n).

Examples

// Sorts and prints a value.
tgen::permutation::value inst = {2, 0, 1};
std::cout << inst.sort() << std::endl; // Prints "0 1 2".
value & sort()
Sorts the value in non-decreasing order.
Definition tgen.h:1810

Definition at line 1810 of file tgen.h.

◆ to_std()

std::vector< int > tgen::permutation::value::to_std ( ) const
inline

Converts the value to a std::vector.

Returns
A std::vector representing the value.

Examples

// Convoluted way to reverse a permutation.
std::vector<int> v = {2, 0, 1};
// v = {2, 1, 3}.
std::vector< int > to_std() const
Converts the value to a std::vector.
Definition tgen.h:1858

Definition at line 1858 of file tgen.h.

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const value & inst )
friend

Prints the value to a std::ostream.

The values are printed with one space as a separator by default, and with no end of line.

Examples

// Prints a value.
std::cout << tgen::permutation::value({2, 0, 1}) << std::endl; // Prints "2 0 1".

Definition at line 1848 of file tgen.h.


The documentation for this struct was generated from the following files:
  • /home/runner/work/tgen/tgen/single_include/tgen.h
  • permutation.dox