25 std::vector<std::vector<Identifier> >& idGroups,
const SCT_ID& sctID) {
36 std::vector<ID_Vector> newidGroups;
40 std::vector<Discont> discontV;
47 std::vector<ID_Vector>::iterator firstGroup = idGroups.begin();
48 std::vector<ID_Vector>::iterator lastGroup = idGroups.end();
49 for (; firstGroup != lastGroup; ++firstGroup) {
52 std::vector<Identifier>::iterator fst = (*firstGroup).begin();
53 std::vector<Identifier>::iterator lst = (*firstGroup).end();
54 std::vector<Identifier>::iterator prt;
55 int prev = sctID.
strip(*fst);
59 discontV.push_back((*firstGroup).begin());
64 for (; fst != lst; ++fst) {
65 int current = sctID.
strip(*fst);
71 if (current != prev + 1) {
72 discontV.push_back(prt);
73 discontV.push_back(fst);
79 discontV.push_back((*firstGroup).end() - 1);
86 std::vector<Discont>::iterator fst_d = discontV.begin();
93 for (
unsigned int sg = 1; sg < discontV.size(); sg += 2) {
95 newvector.assign(*fst_d, (*(fst_d + 1)) + 1);
96 newidGroups.push_back(newvector);