void Hash<V>::insert(string key, V v) { if(table[hash(key)].empty()) //empty spot table[hash(key)].push_back(Entry<V>(key,v)); else{ //non-empty spot typename list< Entry<V> >::iterator it; bool inserted = false; for(it = table[hash(key)].begin(); it != table[hash(key)].end() && inserted == false; it++) { if(it->getKey() == key) { it->setValue(v); inserted = true; } } if(inserted == false) { //non-empty and non-duplicate. table[hash(key)].push_back(Entry<V>(key,v)); } } }
void HashTable<V>::insert(string k, V v) { int hash = hashFunction(k); list<Entry<V> > &hList = vecTable[hash]; typename list<Entry<V> >::iterator it; for (it=hList.begin(); it!=hList.end(); it++) { if (it->getKey() == k) { it->setValue(v); return; } } // if no key == k in the hash table create a new Entry Entry<V> newEntry(k,v); hList.push_back(newEntry); return; }