我只需要使用QMap<QTcpSocket*, QString>
来保留每个连接的名称。
我被告知使用像QTcpSocket这样的复杂对象作为键是不理想的,因为地图比较键的方式,它可能认为有重复,而不是。
所以我显然最好使用QMap<QString, QTcpSocket*>
。
我无法找到&#34;良好做法&#34;有关它的信息。 这有什么理由吗?某些对象是否比其他对象更多/更少推荐用作密钥?
答案 0 :(得分:3)
正如@vahancho所提到的,在这种情况下使用指向对象的指针不是问题。
但是,由于您希望保留每个连接的名称,请考虑QTcpSocket是QObject。
考虑到这一点,您可以调用函数 setObjectName(const QString&amp; name)来命名对象,并调用函数 objectName()来检索它,如在documentation for QObject中描述。