QVector_qt用qvector存放mat数据会错

QVector_qt用qvector存放mat数据会错目录1、构造2、增加3、删除4、改5、查找6、取值7、转换8、其他9、测试代码1、构造QVectorintvector;for(inti=0;i10;++i)vectori+1;//

QVector_qt用qvector存放mat数据会错"

目录

1、构造

2、增加

3、删除

4、改

5、查找

6、取值

7、转换

8、其他

9、测试代码


1、构造

QVector<int> vector;
for(int i = 0; i < 10; ++i) vector << i + 1;

//构造
QVector<int> myVector1(5);      //开辟5个大小的空间
QVector<int> myVector2(5,1);    //5个值,都是1
QVector<int> myVector3(vector); //用另一个QVector初始化

2、增加

QVector<int> myVector;
myVector.push_back(5);  //在数组后添加元素
myVector.push_front(4); //在数组首位置添加元素
myVector.prepend(3);    //在数组首位置添加元素
myVector.append(6);     //在数组最后添加元素
myVector << 7;          //在数组最后添加元素
myVector.insert(0,2);   //在数组位置0,添加元素
myVector.insert(0,2,1); //在数组位置0,添加2个值为1的元素
myVector.insert(myVector.end(),8);      //在数组最后,添加元素
myVector.insert(myVector.end(),2,9);    //在数组最后,添加2个值为9的元素
qDebug() << myVector;

3、删除

//删除
myVector.clear();
myVector << vector;
myVector.remove(0,2);   //从位置0开始,移除2个元素
myVector.remove(0);     //移除位置0的元素
qDebug() << myVector;
myVector.pop_back();    //移除最后一个元素
myVector.pop_front();   //移除第一个元素
myVector.clear();
myVector << vector;
myVector.erase(myVector.begin());//移除某位置的元素
myVector.erase(myVector.begin(),myVector.end());//移除区间所有元素
qDebug() << myVector;

4、改

//改
myVector.clear();
myVector << vector;
myVector.replace(0,10);//位置0上的元素,用10来代替
qDebug() << myVector;

5、查找

qDebug() << myVector.indexOf(2,0);//从位置0开始,查找元素2,返回下标
qDebug() << myVector.lastIndexOf(2,1);//从右向左数,位置0开始查找元素2,返回下标
qDebug() << myVector.startsWith(2);//判断,第一个元素是否是2
qDebug() << myVector.endsWith(2);//判断,最后一个元素是否是2

6、取值

qDebug() << myVector.front(); //第一个元素
qDebug() << myVector.first(); //第一个元素
qDebug() << myVector.last(); //最后一个元素
qDebug() << myVector.mid(1,3); //取位置1后,3个元素

7、转换

//将QVector转为stdVector
std::vector<int> stdVector = myVector.toStdVector();

//将QVector转为QList
QList<int> list = myVector.toList();
qDebug() << list;

//将stdVector转为QVector
myVector.clear();
myVector = QVector<int>::fromStdVector(stdVector);
qDebug() << myVector;

//将QList转为QVector
myVector.clear();
myVector = QVector<int>::fromList(list);
qDebug() << myVector;

8、其他

myVector.squeeze(); //释放不需要存储项的内存
qDebug() << myVector.data(); //首地址
qDebug() << myVector.capacity(); //内存大小
myVector.clear(); //清空内存

9、测试代码

#include <QCoreApplication>
#include <QDebug>
#include <list>
#include <QVector>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QVector<int> vector;
    for(int i = 0; i < 10; ++i) vector << i + 1;

    //构造
    QVector<int> myVector1(5);      //开辟5个大小的空间
    QVector<int> myVector2(5,1);    //5个值,都是1
    QVector<int> myVector3(vector); //用另一个QVector初始化

    //增加
    QVector<int> myVector;
    myVector.push_back(5);  //在数组后添加元素
    myVector.push_front(4); //在数组首位置添加元素
    myVector.prepend(3);    //在数组首位置添加元素
    myVector.append(6);     //在数组最后添加元素
    myVector << 7;          //在数组最后添加元素
    myVector.insert(0,2);   //在数组位置0,添加元素
    myVector.insert(0,2,1); //在数组位置0,添加2个值为1的元素
    myVector.insert(myVector.end(),8);      //在数组最后,添加元素
    myVector.insert(myVector.end(),2,9);    //在数组最后,添加2个值为9的元素
    qDebug() << myVector;

    //删除
    myVector.clear();
    myVector << vector;
    myVector.remove(0,2);   //从位置0开始,移除2个元素
    myVector.remove(0);     //移除位置0的元素
    qDebug() << myVector;
    myVector.pop_back();    //移除最后一个元素
    myVector.pop_front();   //移除第一个元素
    myVector.clear();
    myVector << vector;
    myVector.erase(myVector.begin());//移除某位置的元素
    myVector.erase(myVector.begin(),myVector.end());//移除区间所有元素
    qDebug() << myVector;

    //改
    myVector.clear();
    myVector << vector;
    myVector.replace(0,10);//位置0上的元素,用10来代替
    qDebug() << myVector;

    //查找
    qDebug() << myVector.indexOf(2,0);//从位置0开始,查找元素2,返回下标
    qDebug() << myVector.lastIndexOf(2,1);//从右向左数,位置0开始查找元素2,返回下标
    qDebug() << myVector.startsWith(2);//判断,第一个元素是否是2
    qDebug() << myVector.endsWith(2);//判断,最后一个元素是否是2

    //取值
    qDebug() << myVector.front(); //第一个元素
    qDebug() << myVector.first(); //第一个元素
    qDebug() << myVector.last(); //最后一个元素
    qDebug() << myVector.mid(1,3); //取位置1后,3个元素

    //转换
    //将QVector转为stdVector
    std::vector<int> stdVector = myVector.toStdVector();

    //将QVector转为QList
    QList<int> list = myVector.toList();
    qDebug() << list;

    //将stdVector转为QVector
    myVector.clear();
    myVector = QVector<int>::fromStdVector(stdVector);
    qDebug() << myVector;

    //将QList转为QVector
    myVector.clear();
    myVector = QVector<int>::fromList(list);
    qDebug() << myVector;

    myVector.squeeze(); //释放不需要存储项的内存
    qDebug() << myVector.data(); //首地址
    qDebug() << myVector.capacity(); //内存大小
    myVector.clear(); //清空内存
    return a.exec();
}

 

今天的文章QVector_qt用qvector存放mat数据会错分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/74602.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注