您的位置:首页 > 编程语言 > Qt开发

一步步学Qt,第九天-Q"STL"与STL-Qvector,vector

2011-09-01 16:11 489 查看

一步步学Qt,第九天-Q"STL"与STL-Qvector,vector

这个部分或许没有代码出现,更多的是文字分析,即使会出现也可能就是很简短的部分。今天主要来分析和对比一下Q”STL”与C++的STL,主要讲解他们各自在定义和使用的区别,不仅仅是学习C++的提升也是对Qt与C++STL的结合。

A、QVector<T>与vector<T>

1、 对应变量的声明:

QVector<T> var_qstl;

vector<T> var_stl;

eg: QVector<int> n_vector_qstl; //声明一个无初始化向量大小的向量n_vector_qstl

vector<int> n_vector_stl; //声明一个无初始化向量大小的向量n_vector_stl

2、项的赋值以及项值的获取

2.1 项的赋值
QVector<int> n_vector_qstl;   //没有初始化向量大小
//set Values
n_vector_qstl.append(1);
n_vector_qstl.append(2);
n_vector_qstl.append(3);
QVector<int> n_vector_qstl(3);   //已初始化向量大小
//set Values
n_vector_qstl[0] = 1;
n_vector_qstl[1] = 2;
n_vector_qstl[2] = 3;


vector<int> n_vector_stl;   //没有初始化向量大小
//set values
n_vector_stl.push_back(1);
n_vector_stl.push_back(2);
n_vector_stl.push_back(3);
vector<int> n_vector_stl(3);   //已初始化向量大小
//set values
n_vector_stl[0] = 1;
n_vector_stl[1] = 2;
n_vector_stl[2] = 3;


2.2 项值获取

QVector:

//getValues
for (int i=0; i<n_vector_qstl.count(); i++){
cout << n_vector_qstl[i] << setw(2);
}
cout << endl;


或者:

for (QVector<int>::size_type i=0; i!=n_vector_qstl.count(); i++){
cout << n_vector_qstl[i] << setw(2);
}
cout << endl;

vector:

//get values
for(vector<int>::size_type ix=0; ix!=n_vector_stl.size(); ++ix){
cout << n_vector_stl[ix] << setw(2);
}
cout << endl;
2.3 完整代码:

QVector:

#include <QtCore/QCoreApplication>
#include <QVector>
#include <iostream>
#include <iomanip>
using namespace std;

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

QVector<int> n_vector_qstl;

//set Values
n_vector_qstl.append(1);
n_vector_qstl.append(2);
n_vector_qstl.append(3);
//getValues for (int i=0; i<n_vector_qstl.count(); i++){ cout << n_vector_qstl[i] << setw(2); } cout << endl;

for (QVector<int>::size_type i=0; i!=n_vector_qstl.count(); i++){ cout << n_vector_qstl[i] << setw(2); } cout << endl;
return a.exec();
}


vector:

#include <QtCore/QCoreApplication>
#include <vector>
#include <iostream>
#include <iomanip>
using namespace std;

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

vector<int> n_vector_stl;
//set values
n_vector_stl.push_back(1);
n_vector_stl.push_back(2);
n_vector_stl.push_back(3);
//get values for(vector<int>::size_type ix=0; ix!=n_vector_stl.size(); ++ix){ cout << n_vector_stl[ix] << setw(2); } cout << endl;
return a.exec();
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: