在 C++ 中,你可以创建一个类,并将二维数组作为该类的成员变量。根据需求的不同,你可以选择使用标准 C++ 数组或动态分配的数组(例如使用指针和 new
运算符),或者使用像 QVector
这样的容器类来管理动态大小的数组。
以下是一个使用标准 C++ 数组的简单示例,以及一个使用 QVector
的示例:
方法 1:使用标准 C++ 数组(固定大小)
#include <iostream>
class MyClass {
private:
// 固定大小的二维数组
int array[3][3];
public:
MyClass() {
// 初始化数组
int value = 1;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
array[i][j] = value++;
}
}
}
void printArray() const {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
std::cout << array[i][j] << " ";
}
std::cout << std::endl;
}
}
};
int main() {
MyClass obj;
obj.printArray();
return 0;
}
方法 2:使用动态分配的数组(使用指针)
如果你需要在运行时确定数组的大小,可以使用动态分配:
#include <iostream>
class MyClass {
private:
int** array;
int rows, cols;
public:
MyClass(int r, int c) : rows(r), cols(c) {
// 动态分配二维数组
array = new int*[rows];
for (int i = 0; i < rows; ++i) {
array[i] = new int[cols];
}
// 初始化数组
int value = 1;
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
array[i][j] = value++;
}
}
}
~MyClass() {
// 释放动态分配的内存
for (int i = 0; i < rows; ++i) {
delete[] array[i];
}
delete[] array;
}
void printArray() const {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cout << array[i][j] << " ";
}
std::cout << std::endl;
}
}
};
int main() {
MyClass obj(3, 3);
obj.printArray();
return 0;
}
方法 3:使用 QVector
(Qt 框架)
如果你在使用 Qt 框架,QVector
是一个更灵活和安全的选择:
#include <QCoreApplication>
#include <QVector>
#include <iostream>
class MyClass {
private:
QVector<QVector<int>> array;
public:
MyClass(int rows, int cols) {
array.resize(rows);
for (int i = 0; i < rows; ++i) {
array[i].resize(cols);
}
// 初始化数组
int value = 1;
for (int i = 0; i < array.size(); ++i) {
for (int j = 0; j < array[i].size(); ++j) {
array[i][j] = value++;
}
}
}
void printArray() const {
for (int i = 0; i < array.size(); ++i) {
for (int j = 0; j < array[i].size(); ++j) {
std::cout << array[i][j] << " ";
}
std::cout << std::endl;
}
}
};
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
MyClass obj(3, 3);
obj.printArray();
return a.exec();
}
解释:
- 固定大小数组:适用于大小在编译时已知的情况。
- 动态分配数组:适用于需要在运行时确定大小的情况,但需要手动管理内存。
QVector
:提供动态大小调整和自动内存管理,是 Qt 应用程序中的推荐选择。
选择哪种方法取决于你的具体需求和项目环境。