#ifndef __TEMPLATES_H__ #define __TEMPLATES_H__ #include #include #include #include #include #include #include #include "node.h" using namespace std; template void show(Iterator const & begin, Iterator const & end, Stream & stream) { for(Iterator iterator = begin; iterator != end; ++iterator) { stream << *iterator; } } template std::ostream & operator << (std::ostream & out ,std::pair const & iterator) { out << iterator.second.miestas<< " " << iterator.second.kaina << std::endl; return out ; } template std::ostream & operator << (std::ostream & out ,std::pair 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 void del(map & 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 void del(list & 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 void ResultMap( templ1 & m, templ2 & l, templ3 & rm, Iterator1 const & begin, Iterator1 const & end, Iterator const & begin1, Iterator const & end1) { node1 temp; //map 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 void add(list & 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 void add(map & 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 void update(list & 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 void update(map & 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 void search(list & l, Iterator const & begin, Iterator const & end) { string str, str1; list::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