2014-03-24 6 views
0

이 데이터 유형을 사용하기 전에 그리고 Qt의 초보자인데 QHash의 키로 QGraphicsItem을 사용할 수 있습니까?QHraph의 키로 QGraphicsItem 사용하기

QHash<QGraphicsItem*, someType> hashName; 

그래서 나는 그것이 허용되는 것으로 생각합니다.

감사합니다.

+0

네, 괜찮습니다. 그래픽 항목을 삭제할 때 해시에서 포인터를 수동으로 제거해야합니다. –

+0

감사합니다. 그것은 키가 단지 숫자가 아닌 지역 포인터라고 생각하기 때문에 그렇게하는 것이 합리적입니다. – Francesco

답변

0

예. 그러나 나는 많은 차이를 만들지 않는 QMap<QGraphicsItem*, someType>을 사용할 것이다. 또한 QGraphicsItem을 상속하여 항목에 데이터를 첨부 할 수 있습니다.

+0

여기에'QMap'을 사용할 점이 없습니다 : 키에 의한 룩업은'QMap'에서 더 느리고 포인터에 의한 정렬은 의미가 없습니다. 'QGraphicsItem'을 하위 클래스 화하지 않고도'QGraphicsItem :: setData'를 통해 아이템에 데이터를 첨부 할 수 있습니다. –

+0

해시를 사용하면 액세스, 반복 및 값 삽입 (QHash 구현, 장면 뒤에서)에 키의 해시 계산이 필요하다고 생각했습니다. 또는 해시 int/포인터 어떻게 든 최적화 된? – mugiseyebrows

+0

해싱 포인터는 사소하고'reinterpret_cast (key)^seed'로 Qt에서 수행됩니다. –

관련 문제