本文以实例形式介绍QVector::insert() QVector::remove() 函数的使用方法。
源代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->BtnRmvFrm, SIGNAL(clicked()), this, SLOT(OnClickRmv()));
connect(ui->BtnInsert, SIGNAL(clicked()), this, SLOT(OnClickInsert()));
connect(ui->BtnSetVec, SIGNAL(clicked()), this, SLOT(OnClickSetVec()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::OnClickSetVec(void)
{
m_qvec.clear();
QString qstrInput = ui->EdtVec->text();
QStringList qstrLst = qstrInput.split(QString(","));
int iSize = qstrLst.size();
bool bSuccess;
for(int k = 0; k < iSize; k++)
{
short iElement = qstrLst[k].toInt(&bSuccess);
if(bSuccess)
m_qvec<<iElement;
}
qDebug()<<"set"<<m_qvec;
}
void MainWindow::OnClickInsert(void)
{
QString qstrPos = ui->EdtAddIndex->text();
QString qstrVal = ui->EdtAddVal->text();
bool bSuccess;
short sPos = qstrPos.toInt(&bSuccess), sVal = qstrVal.toInt(&bSuccess);
m_qvec.insert(sPos, sVal);
qDebug()<<"insert"<<m_qvec;
}
void MainWindow::OnClickRmv(void)
{
QString qstrPos = ui->EdtRmv->text();
bool bSuccess;
short sPos = qstrPos.toInt(&bSuccess);
int iSize = m_qvec.size();
m_qvec.remove(sPos, iSize - sPos);
qDebug()<<"remove"<<m_qvec;
}
效果:
1)点击界面的set按钮,qDebug将打印m_qvec的内容:
2) 点击界面的insert按钮,程序将在元素3的前面(第零个元素是1,第三个元素是4,所以是在4之前)插入一个0,并打印
3) 点击界面的remove按钮,程序将把元素2后面的成员全部删除: