1#ifndef STORM_STORAGE_BLOCK_H_
2#define STORM_STORAGE_BLOCK_H_
6#include <boost/container/container_fwd.hpp>
24 static_assert(std::is_same<value_type, sparse::state_type>::value,
"Illegal value type of container.");
43 template<
typename InputIterator>
44 StateBlock(InputIterator first, InputIterator last,
bool sortedAndUnique =
false) {
45 if (sortedAndUnique) {
46 this->states =
container_type(boost::container::ordered_unique_range_t(), first, last);
68 return this->states == other.states;
150 std::size_t
size()
const;
178std::ostream&
operator<<(std::ostream& out, StateBlock
const& block);
std::size_t size() const
Retrieves the number of states in this SCC.
container_type::iterator iterator
iterator begin()
Returns an iterator to the states in this SCC.
StateBlock & operator=(StateBlock const &other)=default
StateBlock & operator=(StateBlock &&other)=default
bool containsState(value_type const &state) const
Retrieves whether the given state is in the SCC.
const_iterator cbegin() const
Returns a const iterator to the states in this SCC.
StateBlock(std::initializer_list< sparse::state_type > list)
Constructs a state block from the given initializer list.
FlatSetStateContainer container_type
void insert(value_type const &state)
Inserts the given element into this SCC.
void erase(value_type const &state)
Removes the given element from this SCC.
StateBlock(StateBlock const &other)=default
iterator end()
Returns an iterator that points one past the end of the states in this SCC.
const_iterator cend() const
Returns a const iterator that points one past the end of the states in this SCC.
container_type::value_type value_type
bool operator==(StateBlock const &other) const
Checks whether the two state blocks contain exactly the same states.
container_type const & getStates() const
Retrieves the set of states contained in the StateBlock.
container_type::const_iterator const_iterator
StateBlock(InputIterator first, InputIterator last, bool sortedAndUnique=false)
Creates a state block and inserts all elements in the given range.
StateBlock(StateBlock &&other)=default
bool empty() const
Retrieves whether this SCC is empty.
boost::container::flat_set< Key, std::less< Key >, boost::container::new_allocator< Key > > FlatSet
Redefinition of flat_set was needed, because from Boost 1.70 on the default allocator is set to void.
storm::storage::FlatSet< sparse::state_type > FlatSetStateContainer
std::ostream & operator<<(std::ostream &out, ParameterRegion< ParametricType > const ®ion)