Qt是在C++的基础上将UI界面上的控件封装成类 因此C++上的代码同样适用于Qt 使用vector容器时,加入以下代码就可以了
include <vector> using namespace std;声明:不需要编译器为其分配内存空间; 定义:要求分配内存空间。
声明是告诉编译器,这个变量或函数已经在程序中存在。
对变量而言,声明和定义一起进行:
int a;//完成声明和定义对函数而言,声明和定义可以分离: 声明:
void data_func();//可以对一个变量多次声明,不会报错 void data_func(); void data_func();定义:
void data_func(){};1、默认初始化 vetor为空,容器中没有元素,没有分配内存空间。(类似函数的声明) 这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。
vector<double> g_best;2、拷贝初始化
vector<int> list2(list); vector<int> list2 = list;两种方式等价 ,list2 初始化为 list 的拷贝 list 必须与 list2 类型相同,也就是同为 int 的 vector 类型,list2 将具有和 list 相同的容量和元素。 3、拷贝部分内容初始化
vector<int> list3(list.begin() + 2, list.end() - 1);读取list容器部分内容 这种初始化方法特别适合于获取一个序列的子序列。
4、默认值初始化
一维数组g_best,长度为psize,默认为0;
g_best为数组名,psize为默认数组长度,默认初始值为0
vector<double> g_best(psize);5、指定值初始化 一维数组g_best,长度为psize,默认为N; g_best为数组名,psize为默认数组长度,默认初始值为N
vector<double> g_best(psize,N);6、直接初始化
vector<double> g_best = {1.2,3};7、静态一维数组
int a[3] = {1.2,3};6、试验
vector<double> n; qDebug() << "n 为 " << n; vector<double> m(5); qDebug() << "m 为 " << m; vector<double> x(5,3);//所有的值都是3 qDebug() << "x 为 " << x;输出
n 为 std::vector() m 为 std::vector(0, 0, 0, 0, 0) x 为 std::vector(3, 3, 3, 3, 3)1、默认值初始化 二维数组swp[][],n行 m列,默认初始值为0
vector<vector<int> >swp(n,vector<int>(m)); //后面两个> >中间的空格不能省略pop为数组名,sizepop为行,psize为列,默认初始值为0
vector<vector<double> > pop(sizepop, vector<double>(psize)); //定义二维数组pop[][],sizepop行 psize列2、指定值初始化 pop为数组名,sizepop为行,psize为列,默认初始值为N
vector<vector<double> > pop(sizepop, vector<double>(psize,N)); //初始化为零,程序运行会数组赋值3、静态初始化
<vector<double> pop = {{1,2,3},{1,2,3}}; //和一维数组类似4、试验
vector<vector<double> > n; qDebug() << "n 为 " << n; array<vector<double>, 5>x();//此处不加括号会报错,尽量用vector而不是用array qDebug() << "x 为 " << x; vector<vector<double> > m(2,vector<double>(3)); qDebug() << "m 为 " << m; vector<vector<double> > x(2,vector<double>(3,1));//所有的值都是1 qDebug() << "x 为 " << x;输出
n 为 std::vector() x 为 true m 为 std::vector(std::vector(0, 0, 0), std::vector(0, 0, 0)) x 为 std::vector(std::vector(1, 1, 1), std::vector(1, 1, 1))