Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Multitude Multitude::operator + (const Multitude& b) const //"first and second"
- {
- Multitude result;
- auto iA = (*this).begin();
- auto iB = b.begin();
- while (true) { // проходимося допоки не закінчаться обидва зв'язні списки
- if(!(iA.end() && iB.end())) { // якщо обидва ще не закінчилися
- if (iA == iB) { // еквівалентні елементи додаються лише один раз
- result.addElement(*iA);
- ++iA; ++iB; // проходимо по двох списках далі
- continue;
- } else if (*iA < *iB) {
- result.addElement(*iA);
- ++iA; // "перший операнд доганяє другий"
- continue;
- } else { // *iA > *iB
- result.addElement(*iA);
- ++iB; // "другий операнд доганяє другий"
- continue;
- }
- } else if (!(iA.end()) && iB.end()) { // якщо перший операнд не закічився, а другий так, то додаються лише елементи з першого
- result.addElement(*iA);
- ++iA;
- continue;
- } else if (iA.end() && !(iB.end())) {
- result.addElement(*iB);
- ++iB;
- continue;
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment