6 #ifndef MYRAMATH_UTILITY_ARRAY1_H 7 #define MYRAMATH_UTILITY_ARRAY1_H 14 #include <myramath/utility/detail/ssize.h> 19 #include <myramath/io/detail/vector.h> 25 #ifdef MYRAMATH_ENABLE_CPP11 26 #include <initializer_list> 44 contents.resize(I,filler);
47 #ifdef MYRAMATH_ENABLE_CPP11 50 Array1(std::initializer_list<T> list)
54 const T* p = list.begin();
55 for (
int i = 0; i < I; ++i)
56 contents.push_back(*p++);
63 { in >> I >> contents; }
67 { out << I << contents; }
71 {
return contents[i]; }
72 const T& operator [] (
int i)
const 73 {
return contents[i]; }
75 {
return contents[i]; }
76 T& operator [] (
int i)
77 {
return contents[i]; }
82 std::swap(this->I, that.I);
83 this->contents.swap(that.contents);
96 typedef std::vector<T> Contents;
102 template<
class T> std::ostream& operator << (std::ostream& out, const Array1<T>& a)
106 for (
int i = 0; i < I; ++i)
int size() const
Size inspector.
Definition: Array1.h:87
void swap(Array1 &that)
Member swap.
Definition: Array1.h:80
Array1(std::initializer_list< T > list)
Constructs from std::initializer_list<T>
Definition: Array1.h:50
void write(OutputStream &out) const
Writes to OutputStream.
Definition: Array1.h:66
ReaderWriter<T>, encapsulates a read()/write() pair for type T.
Array1(int in_I, T filler)
Constructs with specified size and filler.
Definition: Array1.h:41
Abstraction layer, serializable objects write themselves to these.
Definition: Streams.h:39
Array1(InputStream &in)
InputStream constructor.
Definition: Array1.h:62
Container of values, allows random (i) access.
Definition: Array1.h:32
Bases classes for binary input/output streams.
Array1()
Default constructs to 0 size.
Definition: Array1.h:37
const T & operator()(int i) const
Random accessor/mutator.
Definition: Array1.h:70