QT中用什么容器存储三元组?结构体访问太麻烦?又想让其不进行自动排序?
QList<QPair<QPointF, QPointF>> pointList;1.项目中遇到一个需求,就是需要存储一个三个元组,又想按照插入的顺序存储(也就是不会进行自动排序)1.1. 结构体,访问麻烦,跨类传递,需要使用类名1.2. key/value存储,发现QMap,QHash,QMultiMap都会内部进行排序,为什么...
·
QList<QPair<QPointF, QPointF>> pointList;
1.项目中遇到一个需求,就是需要存储一个三个元组,又想按照插入的顺序存储(也就是不会进行自动排序)
1.1. 结构体 ,访问麻烦,跨类传递,需要使用类名
1.2. key/value存储,发现QMap,QHash,QMultiMap都会内部进行排序,
为什么不再加一层QPair?
QList<QPair<QPair<QPointF, QPointF>, bool>> pointList;
顺便把使用贴上:
void setData(const QList<QPair<QPair<QPointF, QPointF>, bool>> &pointList)
{
for (int i = 0; i< pointList.size(); i++) {
QPair<QPointF, QPointF> pairFist;
pairFist.first = QPointF(0, 0);
pairFist.second = pointList.at(i).first.second - pointList.at(i).first.first;
QPair<QPair<QPointF, QPointF>, bool> pairSecond;
pairSecond=(qMakePair(pairFist, pointList.at(i).second));
m_pointList.append(pairSecond);
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)