0

我只需要使用QMap<QTcpSocket*, QString>来保留每个连接的名称。

有人告诉我,使用像 QTcpSocket 这样的复杂对象作为键并不理想,因为 map 比较键的方式,它可能会认为存在重复,而事实并非如此。

所以我显然会更好地使用QMap<QString, QTcpSocket*>

我无法找到关于它的“良好实践”信息。这有什么根据吗?是否比其他对象更多/更少推荐用作键?

4

1 回答 1

3

正如@vahancho 提到的,在这种情况下使用指向对象的指针不是问题。

但是,由于您希望保留每个连接的名称,请考虑 QTcpSocket 是一个 QObject。

考虑到这一点,您可以调用函数setObjectName( const QString & name)来命名对象并调用函数objectName()来检索它,如QObject 文档中所述。

于 2014-08-19T15:14:28.580 回答