Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- iterator it(table[new_node->hash]); //elementy o tym haszu juz sa w tablicy - przeszukujemy liste od pierwszego z nich
- iterator stop = end();
- while (it != stop)
- {
- if (_compFunc(it->first, new_node->data.first)) //znalezlismy element o tym samym kluczu - nie wsadzamy!
- {
- return std::make_pair(it, false);
- }
- if (it.node->hash != new_node->hash) //doszlismy do elementu o innym haszu - wrzucamy przed niego
- {
- new_node->prev = it.node->prev; //wrzucany element wskazuje na elementy miedzy ktore jest wrzucany
- new_node->next = it.node;
- it.node->prev->next = new_node; //element przed tym, przed ktory wrzucamy, musi na niego wskazywac
- it.node->prev = new_node; //element, przed ktory wrzucamy musi wskazywac na nowy
- return std::make_pair(iterator(new_node), true);
- }
- if (it.node == last) //zaczynamy na koncu - wrzucamy na koniec
- {
- new_node->prev = last;
- new_node->next = NULL;
- last->next = new_node;
- last = new_node;
- return std::make_pair(iterator(new_node), true);
- }
- it++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement