I search for a container which has a fast lookup time and I want to store objects in it like the following

```
class Flow{
const int L3Outside;
const int L4Protocol;
const int L4Oustside;
const int L4Inside;
time_t inOut;
time_t outIn;
}

```

The container should only store unique elements BUT for the comparision whether two objects are equal only the constant variables must be compared.

Half of the time I try to insert an element if it isn't already in the container and half of the time I have to find and access an element if it is already contained in the container.

Also important their shouldn't be any collisions due to hashing or if they are collisions I must be able to insert both elements and also find only an element if their are equal not only their hashes.

Any suggestions?