/* file name : widget.cpp */
#include "widget.h"
#include "ui_widget.h"
#include <QVector>
#include <QDebug>
#define cout qDebug() << "[" << __FILE__ << ":" << __LINE__ << "]"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QVector<int> pointAddr(2);
QVector<int> pointAddr_Two(2);
QVector<QVector<int>> pointArr;
pointAddr[0] = 1;
pointAddr[1] = 2;
pointAddr_Two[0] = 1;
pointAddr_Two[1] = 2;
pointArr.append(pointAddr);
cout << "pointArr[0][0] : " << pointArr[0][0];
cout << "pointArr.size() : " << pointArr.size();
cout << "pointArr[0].size() : " << pointArr[0].size();
// cout << "pointArr[0][0].size() : " << pointArr[0][0].size(); /* 该行报错 */
cout << "sizeof(pointArr[0][0].size()) :" << sizeof(pointArr[0][0]);
cout << "sizeof(pointArr) : " << sizeof(pointArr);
/* 遍历方法 1 */
cout << "遍历数组";
for (QVector<QVector<int>>::iterator pRow = pointArr.begin(); pRow != pointArr.end(); pRow++)
{
for (QVector<int>::iterator pColoum = pRow->begin(); pColoum != pRow->end(); pColoum++)
{
cout << *pColoum;
}
}
/* 遍历方法 2 */
cout << "遍历数组";
for (int i = 0; i < pointArr.size(); i++)
{
for (int j = 0; j < pointArr[i].size(); j++)
{
cout << pointArr[i][j];
}
}
cout << "pointArr.contains(pointAddr_Two) : " << pointArr.contains(pointAddr_Two);
}
Widget::~Widget()
{
delete ui;
}
/* 控制台输出
[ ../testQVector/widget.cpp : 25 ] pointArr[0][0] : 1
[ ../testQVector/widget.cpp : 26 ] pointArr.size() : 1
[ ../testQVector/widget.cpp : 27 ] pointArr[0].size() : 2
[ ../testQVector/widget.cpp : 29 ] sizeof(pointArr[0][0].size()) : 4
[ ../testQVector/widget.cpp : 30 ] sizeof(pointArr) : 8
[ ../testQVector/widget.cpp : 33 ] 遍历数组
[ ../testQVector/widget.cpp : 38 ] 1
[ ../testQVector/widget.cpp : 38 ] 2
[ ../testQVector/widget.cpp : 43 ] 遍历数组
[ ../testQVector/widget.cpp : 48 ] 1
[ ../testQVector/widget.cpp : 48 ] 2
[ ../testQVector/widget.cpp : 52 ] pointArr.contains(pointAddr_Two) : true
*/
参考