All pastes #274671 Raw Edit

Shadow[Of]Death

public cpp v1 · immutable
·published 2006-12-10 21:46 UTC
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