1#ifndef LIBS_CORE_MATRIX_H_
2#define LIBS_CORE_MATRIX_H_
43 m_data.swap(std::move(other.m_data));
59 T
operator()(
const size_t row,
const size_t column)
const
97 T &
at(
const size_t row,
const size_t column)
102 const T &
at(
const size_t row,
const size_t column)
const
107 void set(
const size_t row,
const size_t column,
const T &item)
115 void size(uint64_t *rows, uint64_t *cols)
const
127 template<
typename TypeSearch>
128 bool exist(
const TypeSearch itemSearch,
bool (*predicate)(
const TypeSearch &,
const T &),
size_t *ind)
const
133 it = std::find_if(
m_data.begin(),
m_data.end(), search);
137 *ind = std::distance(
m_data.begin(), it);
140 return it !=
m_data.end();
144 template<
typename TypeSearch>
158 bool (*
fptr)(
const TypeSearch &,
const T &);
169 for (
size_t i = 0; i < rhs.
m_rows; i++)
171 for (
size_t j = 0; j < rhs.
m_cols; j++)
173 os << rhs.
at(i, j) <<
" ";
Matrix & operator=(const Matrix &other)
Definition matrix.h:29
Matrix(const Matrix &other)
Definition matrix.h:25
size_t m_rows
Definition matrix.h:161
T & at(const size_t row, const size_t column)
Definition matrix.h:97
const_iterator begin() const
Definition matrix.h:77
bool exist(const TypeSearch itemSearch, bool(*predicate)(const TypeSearch &, const T &), size_t *ind) const
Definition matrix.h:128
Matrix(const size_t rows, const size_t cols)
Definition matrix.h:21
const_iterator end() const
Definition matrix.h:82
~Matrix()
Definition matrix.h:49
iterator end()
Definition matrix.h:72
void set(const size_t row, const size_t column, const T &item)
Definition matrix.h:107
std::vector< T > matrix_t
Definition matrix.h:15
size_t m_cols
Definition matrix.h:162
friend std::ostream & operator<<(std::ostream &os, const Matrix< U > &rhs)
Definition matrix.h:167
Matrix(Matrix &&other) noexcept
Definition matrix.h:37
const T & at(const size_t row, const size_t column) const
Definition matrix.h:102
const_iterator cend() const
Definition matrix.h:92
iterator begin()
Definition matrix.h:67
Matrix & operator=(Matrix &&other) noexcept
Definition matrix.h:41
const_iterator cbegin() const
Definition matrix.h:87
void size(uint64_t *rows, uint64_t *cols) const
Definition matrix.h:115
typename matrix_t::const_iterator const_iterator
Definition matrix.h:17
T & operator()(const size_t row, const size_t column)
Definition matrix.h:54
T operator()(const size_t row, const size_t column) const
Definition matrix.h:59
typename matrix_t::iterator iterator
Definition matrix.h:16
matrix_t m_data
Definition matrix.h:163
std::ostream & operator<<(std::ostream &os, const Matrix< U > &rhs)
Definition matrix.h:167
bool operator()(const T &arg) const
Definition matrix.h:152
sGenericComparator(const TypeSearch data, bool(*function)(const TypeSearch &, const T &))
Definition matrix.h:147
const TypeSearch m_data
Definition matrix.h:157
bool(* fptr)(const TypeSearch &, const T &)
Definition matrix.h:158