目录
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