void LogSequence2::add(IteratorUInt &elements) { if(IsMapped) { throw "Data structure read-only when mapped."; } size_t max = 0; numentries = 0; // Count and calculate number of bits needed per element. while(elements.hasNext()) { size_t element = elements.next(); max = element > max ? element : max; numentries++; } // Prepare array numbits = bits(max); data.clear(); data.resize(numElementsFor(numbits, numentries)); array = &data[0]; arraysize = data.size(); // Save elements.goToStart(); size_t count = 0; while(elements.hasNext()) { size_t element = elements.next(); set_field(&array[0], numbits, count, element); count++; } }