rendered paste body#ifndef __TEMPLATES_H__#define __TEMPLATES_H__#include <list>#include <map>#include <iostream>#include <fstream>#include <string>#include <utility>#include <iomanip>#include "node.h"using namespace std;template<class Iterator, class Stream> void show(Iterator const & begin, Iterator const & end, Stream & stream) { for(Iterator iterator = begin; iterator != end; ++iterator) { stream << *iterator; }}template <typename T> std::ostream & operator << (std::ostream & out ,std::pair<T,node2> const & iterator){ out << iterator.second.miestas<< " " << iterator.second.kaina << std::endl; return out ;}template <typename T> std::ostream & operator << (std::ostream & out ,std::pair<T,node1> const & iterator){ out << iterator.second.vard<< " " << iterator.second.pav << " " << setprecision (5) << iterator.second.suma << std::endl; return out ;}std::ostream & operator << (std::ostream & out,node const & iterator){ out << iterator.vard << " " << iterator.pav << " " << iterator.miestas << " " << iterator.laikas << " " << iterator.nr << " " << iterator.nr1 << std::endl ; return out ;}template <class Iterator> void del(map<string,node2> & t, Iterator const & begin, Iterator const & end){ string tmp; cout << "Iveskite varda abonento kuri noretumete istrinti is duomenu bazes: " << endl; cin >> tmp; Iterator iterator = begin; while(iterator != end) { if (iterator->second.miestas == tmp) { t.erase(iterator); break; } iterator++; }}template <class Iterator> void del(list<node> & t, Iterator const & begin, Iterator const & end){ string tmp; cout << "Iveskite varda abonento kuri noretumete istrinti is duomenu bazes: " << endl; cin >> tmp; Iterator iterator = begin; while(iterator != end) { if (iterator->vard == tmp) { t.erase(iterator); break; } iterator++; }}template<typename templ1,typename templ2,typename templ3,class Iterator1, class Iterator> void ResultMap( templ1 & m, templ2 & l, templ3 & rm, Iterator1 const & begin, Iterator1 const & end, Iterator const & begin1, Iterator const & end1){ node1 temp; //map<string,node1> rm; Iterator1 MapIterator; Iterator ListIterator; MapIterator = begin; ListIterator = begin1; while(ListIterator != end1) { temp.vard = ListIterator->vard; temp.pav = ListIterator->pav; while (MapIterator != end) //= begin ;MapIterator != end; MapIterator++) { if(MapIterator->second.miestas == ListIterator->miestas) { temp.suma = (MapIterator->second.kaina) * (ListIterator->laikas); } MapIterator++; } MapIterator = begin; rm.insert(make_pair(temp.vard, temp)); ListIterator++; }}template<class T> void add(list<T> & l){ node p; char* file = "duomenys.txt"; ifstream f(file); while(!f.eof()) { f >> p.vard >> p.pav >> p.miestas >> p.laikas >> p.nr >> p.nr1; l.push_front(p); } //listas = l; cout << "Duomenys suvesti" << endl;}template<class T> void add(map<string,T> & temp){ T tmp; char* file = "kainorastis.txt"; ifstream f(file); while(f >> tmp.miestas >> tmp.kaina) { temp.insert(make_pair(tmp.miestas,tmp)); } cout << "Duomenys suvesti" << endl;}template<class T> void update(list<T> & l){ node tmp; cout << "Iveskite abonento duomenis darydami tarpelius: " << endl; cin >> tmp.vard >> tmp.pav >> tmp.miestas >> tmp.laikas >> tmp.nr >> tmp.nr1; l.push_front(tmp);}template<class T> void update(map<string,T> & m){ node2 tmp; cout << "Iveskite i kainorasti naujo miesto skambinimo tarifus: " << endl; cin >> tmp.miestas >> tmp.kaina; m.insert(make_pair(tmp.miestas,tmp));}template<class T, class Iterator> void search(list<T> & l, Iterator const & begin, Iterator const & end){ string str, str1; list<node>::iterator ListIterator; cout << "Iveskite ieskomo abonento varda ir pavarde darydami tarpelius: " << endl; cin >> str >> str1; for(ListIterator = begin; ListIterator != end; ++ListIterator) { if(ListIterator->vard == str && ListIterator->pav == str1) { cout << "Rasti atitikmenys abonentu duomenu bazeje: " << endl; cout << *ListIterator; } }}#endif