Согласно Документу SGI по ассоциативным контейнерам , "поскольку элементы хранятся в соответствии с их ключами, важно, чтобы ключ, связанный с каждым элементом, был неизменным".Иногда я использую указатель в качестве ключа для std :: map, поскольку, хотя указанный объект может быть изменяемым, сам указатель является константой.
Технически QPointer - это объект, имитирующий указатель, а Qt'sdoc говорит, что мы можем использовать QPointers точно так же, как указатели.Поскольку сам объект QPointer может измениться во время выполнения, может ли он по-прежнему использоваться в качестве ключа для контейнера std :: map?
Редактировать 1: я не могу использовать QMap, я должен придерживаться std:: map.
Edit 2: код компилируется, когда я использую QPointer.Вопрос в том, стоит ли ожидать неприятных сюрпризов во время выполнения.