Advertisement
Guest User

Untitled

a guest
Nov 20th, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. iterator it(table[new_node->hash]); //elementy o tym haszu juz sa w tablicy - przeszukujemy liste od pierwszego z nich
  2. iterator stop = end();
  3. while (it != stop)
  4. {
  5. if (_compFunc(it->first, new_node->data.first)) //znalezlismy element o tym samym kluczu - nie wsadzamy!
  6. {
  7. return std::make_pair(it, false);
  8. }
  9. if (it.node->hash != new_node->hash) //doszlismy do elementu o innym haszu - wrzucamy przed niego
  10. {
  11. new_node->prev = it.node->prev; //wrzucany element wskazuje na elementy miedzy ktore jest wrzucany
  12. new_node->next = it.node;
  13. it.node->prev->next = new_node; //element przed tym, przed ktory wrzucamy, musi na niego wskazywac
  14. it.node->prev = new_node; //element, przed ktory wrzucamy musi wskazywac na nowy
  15. return std::make_pair(iterator(new_node), true);
  16. }
  17. if (it.node == last) //zaczynamy na koncu - wrzucamy na koniec
  18. {
  19. new_node->prev = last;
  20. new_node->next = NULL;
  21. last->next = new_node;
  22. last = new_node;
  23. return std::make_pair(iterator(new_node), true);
  24. }
  25.  
  26. it++;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement