Changeset 2e31b5 for src/Fragmentation/KeySetsContainer.cpp
- Timestamp:
- Sep 1, 2016, 8:33:13 PM (9 years ago)
- Branches:
- Gui_Fixes
- Children:
- 564621
- Parents:
- eb555b
- git-author:
- Frederik Heber <heber@…> (09/01/16 20:31:45)
- git-committer:
- Frederik Heber <heber@…> (09/01/16 20:33:13)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/KeySetsContainer.cpp
reb555b r2e31b5 247 247 void KeySetsContainer::insert(const KeySetsContainer &other) 248 248 { 249 KeySets.reserve(KeySets.size()+other.KeySets.size()); 250 AtomCounter.reserve(AtomCounter.size()+other.AtomCounter.size()); 251 for (ArrayOfIntVectors::const_iterator iter = other.KeySets.begin(); 252 iter != other.KeySets.end(); ++iter) 253 insert(*iter, iter->size()); 249 // append sets and their atom count 250 KeySets.insert(KeySets.end(), other.KeySets.begin(), other.KeySets.end()); 251 AtomCounter.insert(AtomCounter.end(), other.AtomCounter.begin(), other.AtomCounter.end()); 252 253 // ASSUME: that the fragments inside other are number consecutively 254 255 // find the smallest number 256 int smallest_index = std::numeric_limits<int>::max(); 257 for(size_t i=0;i<other.OrderSet.size();++i) 258 for(IntVector::const_iterator iter = other.OrderSet[i].begin(); 259 iter != other.OrderSet[i].end(); ++iter) 260 smallest_index = std::min(smallest_index, (*iter)); 261 262 // renumber incoming fragments and insert into OrderSets 263 int nr_fragments = 0; 264 for(size_t i=0;i<other.OrderSet.size();++i) { 265 for(IntVector::const_iterator iter = other.OrderSet[i].begin(); 266 iter != other.OrderSet[i].end(); ++iter) { 267 if (i >= OrderSet.size() ) 268 OrderSet.resize(i+1); 269 OrderSet[i].push_back((*iter)+FragmentCounter-smallest_index); 270 if (i >= FragmentsPerOrder.size()) 271 FragmentsPerOrder.resize(i+1); 272 ++(FragmentsPerOrder[i]); 273 } 274 nr_fragments += other.OrderSet[i].size(); 275 } 276 FragmentCounter += nr_fragments; 254 277 } 255 278
Note:
See TracChangeset
for help on using the changeset viewer.