1#ifndef _RHEOLEF_INDEX_SET_BODY_ICC
2#define _RHEOLEF_INDEX_SET_BODY_ICC
35 for (std::set<size_type>::const_iterator iter = x.base::begin(), last = x.base::end(); iter != last; iter++) {
43 for (std::set<size_type>::const_iterator iter = x.base::begin(), last = x.base::end(); iter != last; iter++) {
51 for (std::set<size_type>::const_iterator iter = x.base::begin(), last = x.base::end(); iter != last; iter++) {
74 os << x.base::size() <<
"\t";
75 for (std::set<size_type>::const_iterator iter = x.base::begin(), last = x.base::end(); iter != last; iter++) {
84 c.erase(c.begin(), c.end());
85 std::set_union (a.begin(), a.end(), b.begin(), b.end(), std::inserter((
index_set::base&)c, c.end()));
91 c.erase(c.begin(), c.end());
92 std::set_intersection (a.begin(), a.end(), b.begin(), b.end(), std::inserter((
index_set::base&)c, c.end()));
98 const size_type infty = std::numeric_limits<size_type>::max();
99 iterator iter_a = begin();
100 iterator last_a = end();
101 const_iterator iter_b = b.begin();
102 const_iterator last_b = b.end();
103 while (iter_a != last_a || iter_b != last_b) {
104 if (iter_b == last_b)
return;
105 if (iter_a == last_a) {
106 base::insert(iter_b,last_b);
114 }
else if (ia < ib) {
128 const size_type infty = std::numeric_limits<size_type>::max();
129 iterator iter_a = begin();
130 iterator last_a = end();
131 const_iterator iter_b = b.begin();
132 const_iterator last_b = b.end();
133 while (iter_a != last_a || iter_b != last_b) {
134 if (iter_a == last_a)
return;
135 if (iter_b == last_b) {
136 base::erase(iter_a, last_a);
144 }
else if (ia < ib) {
147 iterator curr_a = iter_a++;
field::size_type size_type
std::set< std::size_t > base
void inplace_intersection(const index_set &b)
void inplace_union(const index_set &b)
void insert(size_type dis_i)
index_set & operator=(const index_set &x)
index_set & operator+=(size_type dis_i)
This file is part of Rheolef.
std::ostream & operator<<(std::ostream &os, const catchmark &m)
void set_intersection(const index_set &a, const index_set &b, index_set &c)
std::istream & operator>>(std::istream &is, const catchmark &m)
void set_union(const index_set &a, const index_set &b, index_set &c)