## CGAL::HalfedgeDS_vector<Traits,HalfedgeDSItems,Alloc>

### Definition

The class HalfedgeDS_vector<Traits,HalfedgeDSItems,Alloc> is a model for the HalfedgeDS concept. HalfedgeDS_vector<Traits,HalfedgeDSItems,Alloc> is a vector-based representation with random access iterators that does not support removal.

#include <CGAL/HalfedgeDS_vector.h>

### Is Model for the Concept

HalfedgeDS<Traits,Items,Alloc>

### Types

typedef random_access_iterator_tag
| iterator_category;
typedef CGAL::Tag_false
| Supports_removal;

### See Also

CGAL::HalfedgeDS_default
CGAL::HalfedgeDS_list
HalfedgeDSItems
CGAL::Polyhedron_3<Traits>
CGAL::HalfedgeDS_items_decorator<HDS>
CGAL::HalfedgeDS_decorator<HDS>
CGAL::HalfedgeDS_const_decorator<HDS>

### Implementation

HalfedgeDS_vector<Traits,HalfedgeDSItems,Alloc> uses internally the STL std::vector container class. We require that we can create a std::vector::iterator from a pointer. If this will not be true any longer for any major STL distribution we might switch to an internal implementation of a vector.

The capacity is restricted to the reserved size. Allocations are not possible beyond the capacity without calling reserve again. All handles and iterators are invalidated upon a reserve call that increases the capacity.

CGAL_ALLOCATOR(int) is used as default argument for the Alloc template parameter.