Vector.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00028 #ifndef KEYVALUE_VALUE_VECTOR_H_
00029 #define KEYVALUE_VALUE_VECTOR_H_
00030
00031 #include <iosfwd>
00032
00033 #include "keyvalue/extern/Vector.h"
00034 #include "keyvalue/value/Matrix.h"
00035
00036 namespace keyvalue {
00037 namespace value {
00038
00046 class Vector : public Matrix {
00047
00048 public:
00049
00062 explicit
00063 Vector(size_t size = 1, bool isRow = false);
00064
00082 template <typename ElementType>
00083 Vector(const vector<ElementType>& data, bool isRow = false);
00084
00090 size_t
00091 getSize() const;
00092
00105 void
00106 resize(size_t size);
00107
00121 const Variant&
00122 operator()(size_t i) const;
00123
00127 Variant&
00128 operator()(size_t i);
00129
00133 void
00134 transpose();
00135
00136 };
00137
00143 std::ostream&
00144 operator<<(std::ostream& os, const Vector& vector);
00145
00155 template <typename Rhs>
00156 struct Parent;
00157
00158 template <typename T>
00159 struct Parent<vector<T> > {
00160 typedef Vector Type_;
00161 };
00162
00163 }
00164 }
00165
00166 #endif // KEYVALUE_VALUE_VECTOR_H_