|
ATLAS Offline Software
|
Go to the documentation of this file.
22 const int nper =
sizeof (
unsigned int) * CHAR_BIT;
94 v |= ((
m_vec[ndx+1] &
mask(bits)) << (nper - off));
119 m_vec[ndx+1] = (
m_vec[ndx+1] & ~mask2) | ((
v >> (nper - off)) & mask2);
131 throw std::out_of_range (
"PackedArray");
145 : m_bitsize (bitsize),
147 m_mask (
mask (bitsize)),
167 : m_bitsize (bitsize),
169 m_mask (
mask (bitsize)),
170 m_vec (nbase(
n), 0, allocator)
202 return m_vec.get_allocator();
220 return m_vec.max_size();
402 return proxy (*
this, 0);
value_type operator[](size_type n) const
Access an element, as an rvalue.
basetype m_vec
Underlying vector holding the data.
void assign(size_type n, value_type u)
Set the container to multiple copies of the same value.
void push_back(value_type x)
Add an element to the end of the collection.
value_type back() const
Access the last element in the collection as an rvalue.
size_t nbase(size_type n) const
Calculate the number of entries in the base vector needed to hold entries with the current bitsize.
void swap(PackedArray &other)
Swap this collection with another.
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
size_type m_size
The current number of entries in the container.
size_type size() const
Returns the number of elements in the collection.
int tooff(size_type n) const
Find the bit offset of entry within its entry in the base vector.
int bitsize() const
Return the bitsize of the container.
@ u
Enums for curvilinear frames.
value_type at(size_type n) const
Access an element, as an rvalue.
bool empty() const
Returns true if the collection is empty.
An array of unsigned values of some bit size, packed tightly.
value_type doget(size_type ndx, int off) const
Return the entry at base index ndx/offset off.
allocator_type get_allocator() const
Returns the allocator of the underlying vector.
PackedArray(int bitsize=8, const allocator_type &allocator=allocator_type())
Constructor.
void range_check(size_type n) const
Check that n is in range and throw out_of_range if not.
void resize(size_type sz, value_type c=0)
Resizes the collection to the specified number of elements.
value_type front() const
Access the first element in the collection as an rvalue.
basetype::allocator_type allocator_type
int m_bitsize
The current bitsize of the container.
value_type get(size_type n) const
Return the entry at index n.
value_type m_mask
Mask with m_bitsize bits set.
proxy class for representing an lvalue to an element of PackedArray.
size_t tondx(size_type n) const
Find the index in the base vector where entry starts.
void set_bitsize(int bitsize)
Change the bitsize of the container.
void set(size_type n, value_type val)
Set the entry at index n.
An array of unsigned values of some bit size, packed tightly.
void pop_back()
Remove the last element from the collection.
void doset(size_type ndx, int off, value_type v)
Set the entry at base index ndx/offset off to v.
void clear()
Erase all the elements in the collection.
size_type capacity() const
Returns the total number of elements that the collection can hold before needing to allocate more mem...
size_type max_size() const
Returns the size() of the largest possible collection.