Refining packed_vector.hpp
* Rename to std::vector-like APIs (push_back, at) * Add size, reserve, capacity methods
This commit is contained in:
committed by
Daniel J. Hofmann
parent
46b58fba83
commit
1659bbf7b1
@@ -25,7 +25,7 @@ class PackedVector
|
||||
public:
|
||||
PackedVector() = default;
|
||||
|
||||
void insert(OSMNodeID incoming_node_id)
|
||||
void push_back(OSMNodeID incoming_node_id)
|
||||
{
|
||||
std::uint64_t node_id = static_cast<std::uint64_t>(incoming_node_id);
|
||||
// mask incoming values, just in case they are > bitsize
|
||||
@@ -61,7 +61,7 @@ class PackedVector
|
||||
num_elements++;
|
||||
}
|
||||
|
||||
OSMNodeID retrieve(const std::size_t &a_index) const
|
||||
OSMNodeID at(const std::size_t &a_index) const
|
||||
{
|
||||
BOOST_ASSERT(a_index < num_elements);
|
||||
|
||||
@@ -102,6 +102,21 @@ class PackedVector
|
||||
}
|
||||
}
|
||||
|
||||
std::size_t size() const
|
||||
{
|
||||
return num_elements;
|
||||
}
|
||||
|
||||
void reserve(std::size_t capacity)
|
||||
{
|
||||
vec.reserve(ceil(float(capacity) / ELEMSIZE) * BITSIZE);
|
||||
}
|
||||
|
||||
std::size_t capacity() const
|
||||
{
|
||||
return floor(float(vec.capacity()) / BITSIZE) * ELEMSIZE;
|
||||
}
|
||||
|
||||
private:
|
||||
std::vector<std::uint64_t> vec;
|
||||
std::size_t num_elements = 0;
|
||||
|
||||
Reference in New Issue
Block a user