VList: Difference between revisions

1,483 bytes removed ,  12 years ago
Remove copy of header file from linked website; keep link.
(Remove copy of header file from linked website; keep link.)
Line 142:
 
=={{header|C++}}==
{{incomplete|C++|Please show how to use a VList in C++.}}
{{incorrect|C++|It only shows the declaration of the operations, not the implementation of them.}}
<ref>OOTL implements a VList, see {{Citation | title=An Implemenation of the vlist data structure | accessdate=19 January 2011 | url=http://www.ootl.org/doc/vlist.html}} </ref>.
OOTL Implementation
<ref> {{Citation | title=An Implemenation of the vlist data structure | accessdate=19 January 2011 | url=http://www.ootl.org/doc/vlist.html}} </ref>
 
<lang cpp>template<typename T, int Factor_N=2, int Initial_N=8> struct vlist
{
public:
typedef T value_type;
typedef vlist self;
 
protected:
struct buffer {
size_t index;
size_t size_minus_one;
size_t size;
T* begin;
T* end;
buffer* prev;
buffer* next;
};
 
struct iterator {
typedef iterator self;
typedef T value_type;
iterator(buffer* x, T* y);
iterator(const iterator& x);
self& operator+=(size_t n);
self operator+(size_t n);
self& operator-=(size_t n);
self operator-(size_t n);
self& operator++();
self& operator--();
self operator++(int);
self operator--(int);
bool operator==(const self& x);
bool operator!=(const self& x);
bool operator<(const self& x);
T& operator*();
};
 
struct reverse_iterator {
// same as iterator
};
 
private:
buffer* buff;
size_t cap;
 
public:
vlist();
~vlist();
buffer* get_first_buffer();
buffer* get_last_buffer();
T* get_pointer(size_t n);
size_t capacity() const;
void initialize(size_t n);
void add_buffer();
void add_buffer(buffer* x);
void remove_buffer();
void clear();
iterator begin();
iterator end();
reverse_iterator rbegin();
reverse_iterator rend();
};</lang>
 
== References ==
{{reflist}}
 
 
Anonymous user