Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.35 KB | None | 0 0
  1. #ifndef __MAP_TEMPLATE_H__
  2. #define __MAP_TEMPLATE_H__
  3. #include <vector>
  4. #include <map>
  5. #include "employee.h"
  6. #include "biblioteka.h"
  7. using namespace std;
  8. template <typename ID, typename dane>
  9. class map_template{
  10.     vector<ID> data;
  11.     vector<dane> data2;
  12.     public:
  13.         map_template(){
  14.         };
  15.  
  16.         ~map_template(){
  17.             vector<ID>().swap(data); //That will create an empty vector with no memory allocated
  18.                                                 //and swap it with tempVector, effectively deallocating the memory.
  19.             vector<dane>().swap(data2);
  20.         }
  21.         class BadAlloc{ }; // tylko do rzucenia wyjatku
  22.    
  23.         void Add(ID idd, dane dd)
  24.         {
  25.             try{
  26.             data.push_back(idd);
  27.             data2.push_back(dd);
  28.             }
  29.             catch(const std::bad_alloc &e){
  30.                 cerr << "Exception at " << e.what() << endl;
  31.             }
  32.             catch(...){
  33.                
  34.             }
  35.         }
  36.         dane* Find(ID idd)
  37.         {          
  38.             if(!data.empty()){         
  39.                 for (size_t i = 0; i != data.size(); ++i)
  40.                 {
  41.                     if(idd==this->data[i])
  42.                     {
  43.                         return &(this->data2[i]);
  44.                     }
  45.                 }
  46.             }
  47.             return 0;
  48.         }
  49.         friend ostream& operator << (ostream& o, const map_template& m)
  50.         {
  51.             if(!(m.data2.empty()) || !(m.data.empty()) || m.data.size()==m.data2.size()){
  52.                 for (size_t i = 0; i != m.data2.size(); ++i) {
  53.                     o << m.data[i] << ", " <<m.data2[i] <<endl;
  54.                 }
  55.             }
  56.             else o << "Error" <<endl;
  57.             return o;
  58.         }
  59. };
  60.  
  61.  
  62. #endif /* __MAP_TEMPLATE_H__ */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement