Как я объявил , у меня есть кое-что довольно крутое.
Я публикую это сейчас, потому что я не был уверен, вернусь ли я сегодня вечером копубликовать это.Я буду потратить несколько слов на объяснение.(в этом посте)
PS. Включения будут урезаны (примерно до 20%);Я, вероятно, тоже сделаю более общую работу над кодом.
Об этом коде можно сказать много: он не очень эффективен и не очень чист (пока).Это, однако, почти бесконечно родовое и должно масштабироваться, как и все остальное.Весь код можно найти в GitHub:
- merge_maps_iterator.hpp
- Makefile
- test.cpp - довольно загадочный набор тестовых примеров, демонстрирующих универсальность (я не говорю, что было бы хорошей идеей иметь карты с ключами и плавающей запятой (не говоря уже о обеих одновременно) - просто показывая, что это можно сделать)
Вот вывод test.cpp, как вы можете его найти:
== input ========================================
{ 2, aap } { 23, mies } { 100, noot } { 101, broer }
{ b, 3.14 }
== output =======================================
2: aap;
23: mies;
98: 3.14;
100: noot;
101: broer;
== input ========================================
{ b, 3.14 }
{ 2, aap } { 23, mies } { 100, noot } { 101, broer }
== output =======================================
2: aap;
23: mies;
98: 3.14;
100: noot;
101: broer;
== input ========================================
{ 2, aap } { 23, mies } { 100, noot } { 101, broer }
{ 2, aap } { 23, mies } { 100, noot } { 101, broer }
== output =======================================
2: aap;aap;
23: mies;mies;
100: noot;noot;
101: broer;broer;
== input ========================================
{ b, 3.14 }
{ b, 3.14 }
== output =======================================
b: 3.14;3.14;
== input ========================================
{ 1.0, dag } { 22.0, bye } { 24.0, Tschüß }
{ 1, true } { 22, false } { 24, true }
{ b, 3.14 }
{ 2, aap } { 23, mies } { 100, noot } { 101, broer }
== output =======================================
1.0: dag;true;
2.0: aap;
22.0: bye;false;
23.0: mies;
24.0: Tschüß;true;
98.0: 3.14;
100.0: noot;
101.0: broer;
== input ========================================
{ 1.0, dag } { 2.0, EXTRA } { 22.0, bye } { 24.0, Tschüß }
{ 1, true } { 22, false } { 24, true }
{ b, 3.14 }
{ 2, aap } { 23, mies } { 100, noot } { 101, broer }
== output =======================================
1.0: dag;true;
2.0: EXTRA;aap;
22.0: bye;false;
23.0: mies;
24.0: Tschüß;true;
98.0: 3.14;
100.0: noot;
101.0: broer;