std::map
действует как ассоциативная структура данных.Другими словами, он позволяет запрашивать и изменять значения, используя связанный ключ.
A std::set<pair<K,V> >
можно заставить работать таким образом, но вы должны написать дополнительный код для запроса, используя ключ и больше кода для изменения значения (т.е. удалить старую пару и вставить другую с тем жеключ и другое значение).Вы также должны убедиться, что не более двух значений с одним и тем же ключом (как вы уже догадались, больше кода).
Другими словами, вы можете попытаться подковать std::set
такstd::map
, но для этого нет никаких оснований.