The two other responses already described what intrusive containers are. Have a look at <a href="https:&#x2F;&#x2F;troydhanson.github.io&#x2F;uthash&#x2F;" rel="nofollow">https:&#x2F;&#x2F;troydhanson.github.io&#x2F;uthash&#x2F;</a> to see an implementation of them that I personally like and use in my C projects. It&#x27;s really simple to have a struct that is indexed by multiple keys by basically just adding two UT_hash_handle values to your struct and then using the uthash functions. On top of that, it&#x27;s a really nice implementation that is completely self-contained in a single C header file.