详细说明
QPair类是存储一对项目的模板类。
如果STL对类型不可用,则可以在您的应用程序中使用QPair <T1,T2>。它存储一个T1类型的值和一个T2类型的值。它可以用作需要返回两个值的函数的返回值,也可以用作通用容器的值类型。
这是一个QPair的示例,它存储一个QString和一个double值:
QPair<QString, double> pair;
这些组件可以作为称为第一个和第二个的公共数据成员进行访问。例如:
pair.first = "pi";
pair.second = M_PI;
但是请注意,几乎总是最好定义一个小的结构来保存具有多个返回值的函数的结果。一个结构简单地泛化为两个以上的值,并且允许使用比第一个和第二个更多的描述性成员名称:
struct Variable {
QString name;
double value;
};
Variable v;
v.name = "pi";
v.value = M_PI;
C ++ 11自动变量类型推导(auto)的出现将重点从类型名称转移到函数和成员的名称。因此,像std :: pair和std :: tuple一样,QPair在无法定义专用类型的通用(模板)代码中最有用。
QPair的模板数据类型(T1和T2)必须是可分配的数据类型。例如,您不能将QWidget存储为值。而是存储一个QWidget *。一些功能有其他要求;这些要求是按功能记录的。