SimpList moved to header-only implementation.
This commit is contained in:
parent
dad664f245
commit
a303676084
|
@ -1,73 +0,0 @@
|
||||||
#include <ods/simplist.h>
|
|
||||||
#include <cassert>
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
constexpr std::size_t DEFAULT_SIZE = 8;
|
|
||||||
|
|
||||||
namespace ods {
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
SimpList<T>::SimpList()
|
|
||||||
{
|
|
||||||
arr = new T[DEFAULT_SIZE];
|
|
||||||
cap = 0;
|
|
||||||
len = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
std::size_t
|
|
||||||
SimpList<T>::size(void)
|
|
||||||
{
|
|
||||||
assert(len <= cap);
|
|
||||||
return this->len;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
T
|
|
||||||
SimpList<T>::get(std::size_t i)
|
|
||||||
{
|
|
||||||
if (i >= this->len) {
|
|
||||||
throw std::invalid_argument("index out of range");
|
|
||||||
}
|
|
||||||
|
|
||||||
return this->arr[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
T
|
|
||||||
SimpList<T>::set(std::size_t i, T value)
|
|
||||||
{
|
|
||||||
if (i >= this->len) {
|
|
||||||
throw std::invalid_argument("index out of range");
|
|
||||||
}
|
|
||||||
// check size, grow as needed
|
|
||||||
// simple case: check append
|
|
||||||
// complex case: insertion
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
void
|
|
||||||
SimpList<T>::add(std::size_t i, T value)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
T
|
|
||||||
SimpList<T>::remove(std::size_t i)
|
|
||||||
{
|
|
||||||
if (i >= this->len) {
|
|
||||||
throw std::invalid_argument("index out of range");
|
|
||||||
}
|
|
||||||
|
|
||||||
return this->arr[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
} // end namespace ods
|
|
Loading…
Reference in New Issue