16 typedef std::vector<int> BaseT;
17 typedef std::vector<int>::const_iterator const_iterator;
18 typedef std::vector<int>::iterator iterator;
21 inline IntTuple(
int e1):elements(1,e1) {}
22 inline IntTuple(
int e1,
int e2) {
set(e1,e2); }
23 inline IntTuple(
int e1,
int e2,
int e3) {
set(e1,e2,e3); }
24 inline IntTuple(
const std::vector<int>& t):elements(t) {}
25 inline size_t size()
const {
return elements.size(); }
26 inline bool empty()
const {
return elements.empty(); }
27 inline void resize(
size_t s) { elements.resize(s); }
28 inline int operator[](
int i)
const {
return elements[i]; }
29 inline int& operator[](
int i) {
return elements[i]; }
30 inline operator BaseT& () {
return elements; }
31 inline operator const BaseT& ()
const {
return elements; }
32 inline iterator begin() {
return elements.begin(); }
33 inline const_iterator begin()
const {
return elements.begin(); }
34 inline iterator end() {
return elements.end(); }
35 inline const_iterator end()
const {
return elements.end(); }
36 inline bool operator < (
const IntTuple& t)
const {
return std::lexicographical_compare(begin(),end(),t.begin(),t.end()); }
37 inline bool operator == (
const IntTuple& t)
const {
return elements == t.elements; }
38 inline void fill(
int val) { std::fill(elements.begin(),elements.end(),val); }
39 inline void set(
int e1) { elements.resize(1); elements[0]=e1; }
40 inline void set(
int e1,
int e2) { elements.resize(2); elements[0]=e1; elements[1]=e2; }
41 inline void set(
int e1,
int e2,
int e3) { elements.resize(3); elements[0]=e1; elements[1]=e2; elements[2]=e3; }
42 inline int getIndex(
int x)
const {
43 for(
size_t i=0;i<elements.size();i++)
if(x==elements[i])
return (
int)i;
46 inline bool contains(
int x,
int& index)
const {
50 inline bool contains(
int x)
const {
51 int index=getIndex(x);
54 inline int count(
int x)
const {
56 for(
size_t i=0;i<elements.size();i++)
if(x==elements[i]) n++;
59 inline void operator += (
int ofs) {
for(
size_t i=0;i<elements.size();i++) elements[i]+=ofs; }
60 inline void operator -= (
int ofs) {
for(
size_t i=0;i<elements.size();i++) elements[i]-=ofs; }
62 std::vector<int> elements;
An integer tuple class.
Definition: IntTuple.h:14