void BigInt::removeNumbersFromNumbers(const ContainerType& subtrahendNumbers, ContainerType& minuendNumbers) const { for (int currentRank = 0; currentRank < subtrahendNumbers.size(); currentRank++) { int minuendDigit = minuendNumbers[currentRank]; int subtrahendDigit = subtrahendNumbers[currentRank]; if (minuendDigit < subtrahendDigit) { minuendDigit += kBaseValue; int floatRank = currentRank + 1; do { if (minuendNumbers[floatRank]) { minuendNumbers[floatRank]--; break; } else { minuendNumbers[floatRank] = kBaseValue - 1; } floatRank++; } while (floatRank < minuendNumbers.size()); if (floatRank == minuendNumbers.size() - 1 && 0 == minuendNumbers[floatRank]) { minuendNumbers.pop_back(); } } minuendNumbers[currentRank] = minuendDigit - subtrahendDigit; } }
void truncate_entries() { while(entries.size() > entries_max) { entries.pop_back(); } }