Go to the documentation of this file.
40 ::operator
delete(start);
72 const void* first,
const size_t n);
84 const size_t n = position - start;
85 if (finish != end_of_storage && position == finish) {
88 insert_aux(position, x);
96 if (finish != end_of_storage)
99 insert_aux(finish, x);
114 template<>
inline void
118 if (positions.
size() == 0)
123 while (pos != lastpos)
124 operator[](*pos++) = *val++;
131 if (positions.
size() != values.
size())
132 throw BCP_fatal_error(
"BCP_vec::update() called with unequal sizes.\n");
134 unchecked_update(positions, values);
147 const size_t len = last - first;
148 std::memmove(start, first, len *
sizeof(
bool));
149 finish = start + len;
170 if (position + 1 != finish)
171 std::memmove(position, position + 1, ((finish-position) - 1) *
sizeof(
bool));
177 if (first != last && last != finish)
178 std::memmove(first, last, (finish - last) *
sizeof(
bool));
179 finish -= (last - first);
BCP_vec< T > & operator=(const BCP_vec< T > &x)
Copy the contents of x into the object and return a reference the the object itself.
void unchecked_update(const BCP_vec< int > &positions, const BCP_vec< T > &values)
Same as the previous method but without sanity checks.
std::pair< int, int > * iterator
The class BCP_vec serves the same purpose as the vector class in the standard template library.
void assign(const void *x, const size_t num)
Copy num entries of type T starting at the memory location x into the object.
void unchecked_push_back(const_reference x)
Append x to the end of the vector.
size_t size() const
Return the current number of entries.
void erase(iterator pos)
Erase the entry pointed to by pos.
iterator begin()
Return an iterator to the beginning of the object.
void push_back(const_reference x)
Append x to the end of the vector.
void update(const BCP_vec< int > &positions, const BCP_vec< T > &values)
Update those entries listed in positions to the given values.
void deallocate()
Destroy the entries in the vector and free the memory allocated for the vector.
void reserve(const size_t n)
Reallocate the object to make space for n entries.
void BCP_vec_sanity_check(BCP_vec< int >::const_iterator firstpos, BCP_vec< int >::const_iterator lastpos, const int maxsize)
A helper function to test whether a set positions is sane for a vector.
void insert_aux(iterator position, const_reference x)
insert x into the given position in the vector.
void keep(iterator pos)
Keep only the entry pointed to by pos.
const std::pair< int, int > * const_iterator
void insert(iterator position, const void *first, const size_t num)
Insert num entries starting from memory location first into the vector from position pos.
BCP_vec()
The default constructor initializes the data members as 0 pointers.
void pop_back()
Delete the last entry.
const std::pair< int, int > & const_reference
iterator end()
Return an iterator to the end of the object.
Currently there isn't any error handling in BCP.