T& operator[](const key_type& x);
Effects: Equivalent to: return try_emplace(x).first->second;
Effects: Equivalent to: return try_emplace(move(x)).first->second;
T& at(const key_type& x);
const T& at(const key_type& x) const;
Returns: A reference to the mapped_type corresponding to x in *this.
Throws: An exception object of type out_of_range if no such element is present.
Complexity: Logarithmic.