values-array.hpp
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
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 namespace Gecode { namespace Iter { namespace Values {
00035
00046 class Array {
00047 protected:
00049 int* v;
00051 unsigned int c;
00053 unsigned int n;
00054 public:
00056
00057
00058 Array(void);
00060 Array(int* v, unsigned int n);
00062 Array(int* v, int n);
00064 void init(int* v, unsigned int n);
00066 void init(int* v, int n);
00068
00070
00071
00072 bool operator ()(void) const;
00074 void operator ++(void);
00076 void reset(void);
00078
00080
00081
00082 int val(void) const;
00084 };
00085
00086
00087 forceinline
00088 Array::Array(void) {}
00089
00090 forceinline
00091 Array::Array(int* v0, unsigned int n0)
00092 : v(v0), c(0U), n(n0) {}
00093
00094 forceinline
00095 Array::Array(int* v0, int n0)
00096 : v(v0), c(0U), n(static_cast<unsigned int>(n0)) {}
00097
00098 forceinline void
00099 Array::init(int* v0, unsigned int n0) {
00100 v=v0; c=0U; n=n0;
00101 }
00102
00103 forceinline void
00104 Array::init(int* v0, int n0) {
00105 v=v0; c=0U; n=static_cast<unsigned int>(n0);
00106 }
00107
00108 forceinline void
00109 Array::operator ++(void) {
00110 c++;
00111 }
00112 forceinline bool
00113 Array::operator ()(void) const {
00114 return c<n;
00115 }
00116 forceinline void
00117 Array::reset(void) {
00118 c=0;
00119 }
00120
00121 forceinline int
00122 Array::val(void) const {
00123 return v[c];
00124 }
00125
00126 }}}
00127
00128
00129