Unordered container with multiple keys / values
<p>I need a data container for collecting numeric data based on one or multiple keys (like a key built of <code>int</code> and <code>std::string</code>). </p>

<p>For one key, I simply can use <code>unordered_map&lt;std::string, int&gt;</code> respectively <code>unordered_map&lt;std::string, List&lt;int&gt;&gt;</code> if multiple values should be collected.</p>

<p>What about having multiple keys? Other posts suggested me to use <code>std::make_pair&lt;type1, type2&gt;</code> as key, but this only works for 2 keys and looks a little hacky. </p>

<p>Is there any easy-to-use data structure or library allowing keys built of multiple variables and multiple values assigned to it? The values only must be accessible by the keys (I do not need something like boost::multi_index which provides several interfaces to access values). Furthermore the values must not be sorted in the container, however fast access is desired as the values are added/incremented during data processing.</p>