Проверьте эту документацию std :: map . Карта может быть объявлена следующим образом:
template
<
class Key,
class T,
class Compare = std::less<Key>,
class Allocator = std::allocator<std::pair<const Key, T> >
>
class map;
Это означает, что карта может содержать не более 4 типов шаблонов: Key, Value, Compare type и тип распределителя;из которых последние 2 являются необязательными.
Теперь ваш код:
std::map<std::string, class setting, bases> s
В этом случае class setting
- это значение, а struct bases
- это тип сравнения. Говоря простым языком, s
- это карта, которая может отображать между std::string
типами и class setting
, тогда как struct bases
предоставляет способ сравнения строковых ключей для сортировки элементов карты.