头文件
class Vector_test
{
public:
Vector_test();
vector<int> one;
vector<vector<double> > two;
vector<int> one_list{1,2,3};
// 初始化列表的方式(构造函数定义时)给成员变量赋值,是可以的
// int psize = 1;
// vector<double> g_best(psize);
// 定义时用的小括号,编译器会认为你尝试定义一个函数。会报错
// 对类的成员函数而言,除了在类体中声明外,还需要在类体外定义。(大部分是这样)
vector<double> test_1;
vector<int> two_array_low;
vector<vector<int> > two_array;
};
源文件
Vector_test::Vector_test()
{
vector<int> m;
qDebug() << m;
qDebug() << "one" << one;
qDebug() << "two" << two;
qDebug() << "one_list" << one_list;
// qDebug() << "g_best" << g_best();
test_1.push_back(3.14);
qDebug() << "test_1" << test_1;
int k = 1;
for (int i = 0; i < 3; i++){
for (int j = 0; j < 5; j++){
two_array_low.push_back(0);
}
two_array.push_back(two_array_low);
// two_array_low.clear();
}
qDebug() << "two_array" << two_array;
}
outcome
int变量仅仅声明(一般只说声明,但是实际上是声明和定义一起),就可以打印出值,但是每次打印的值都不同,因为是随机分配的空间。
创建变量但并未初始化,智能的编译器会默认初始化——自动为变量分配内存地址(即内存单元),并打印出对应内存的值,但是每一次运行时,分配的地址都不同,导致打印的值不同
二维数组默认初始化(输出为vector())仅可以打印出空的、不分配空间的容器,
如果在后续使用at对成员进行访问,必须经过初始化,否则会内存泄漏。
std::vector()
one std::vector()
two std::vector()
one_list std::vector(1, 2, 3)
test_1 std::vector(3.14)
two_array std::vector(std::vector(0, 0, 0, 0, 0), std::vector(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), std::vector(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))