graph/dynamic_half_square_matrix.hpp

template<typename T, typename Vector = std::vector<T>>
class gviz::detail::DynamicHalfSquareMatrix

A Dynamically Allocated Only-Square-Shape Half/Top-Triangle Matrix-like data structure that is suitable for resizing so much and undirected adjacency-matrix graph.

NOTE: its linear indexing is different, see index private function.

Public Types

using value_type = T

Public Functions

inline explicit constexpr DynamicHalfSquareMatrix()
inline explicit constexpr DynamicHalfSquareMatrix(std::size_t n, T value = T())
inline constexpr std::size_t size() const noexcept
inline constexpr void resize(std::size_t n, T value = T())
inline constexpr T &at(std::size_t n, std::size_t m)
inline constexpr const T &at(std::size_t n, std::size_t m) const
inline constexpr void add_rowcol(std::size_t count, T value = T())
inline constexpr void pop_rowcol(std::size_t x)
inline constexpr auto begin()
inline constexpr auto end()
inline constexpr const auto begin() const
inline constexpr const auto end() const
inline constexpr const auto cbegin() const
inline constexpr const auto cend() const
inline constexpr auto operator()(std::size_t n, std::size_t m)
inline constexpr auto operator()(std::size_t n, std::size_t m) const

Private Functions

inline constexpr std::size_t tsize(std::size_t n) const noexcept
inline constexpr std::size_t index(std::size_t n, std::size_t m) const noexcept
inline constexpr auto reverse_index(std::size_t idx) const noexcept -> std::pair<std::size_t, std::size_t>

Private Members

Vector vec_ = {}
std::size_t size_ = 0
namespace gviz
namespace detail
file dynamic_half_square_matrix.hpp
#include <>
#include <>
#include <>
#include <>
#include <>
#include <>
#include “”
dir /home/cthulhu/projects/repos/libgvizard/include/gvizard/graph
dir /home/cthulhu/projects/repos/libgvizard/include/gvizard
dir /home/cthulhu/projects/repos/libgvizard/include