12 inline IntTriple(
int _a,
int _b,
int _c) :a(_a),b(_b),c(_c) {}
14 inline bool operator == (
const IntTriple& t)
const 15 {
return a==t.a&&b==t.b&&c==t.c; }
16 inline bool operator != (
const IntTriple& t)
const {
return !operator==(t); }
17 inline bool operator < (
const IntTriple& t)
const 18 {
return a<t.a || (a==t.a && (b<t.b || (b==t.b && c<t.c))); }
19 inline void set(
int _a,
int _b,
int _c) { a=_a; b=_b; c=_c; }
20 inline int operator[](
int i)
const {
return data[i]; }
21 inline int& operator[](
int i) {
return data[i]; }
22 inline int getIndex(
int x)
const {
23 for(
int i=0;i<3;i++)
if(x==data[i])
return i;
26 inline bool contains(
int x)
const {
return a==x||b==x||c==x; }
27 inline bool contains(
int x,
int& index)
const {
31 inline int count(
int x)
const {
33 for(
int i=0;i<3;i++)
if(x==data[i]) n++;
36 inline void getCompliment(
int i,
int& v1,
int& v2)
const {
40 inline int getCompliment(
int i1,
int i2)
const {
43 inline void operator += (
int ofs) { a+=ofs; b+=ofs; c+=ofs; }
44 inline void operator -= (
int ofs) { a-=ofs; b-=ofs; c-=ofs; }
48 struct {
int a,b,c; };
52 std::ostream& operator << (std::ostream& out,
const IntTriple& t);
53 std::istream& operator >> (std::istream& in,
IntTriple& t);
A lightweight integer 3-tuple class.
Definition: IntTriple.h:9