如何为二维数组创建类
How can I create class for 2 dimentional array?
我想通过使用泛型编程来创建类,以支持下面的语句
matrix<int, 2, 2> tonpai = { { 1,2 },{ 3,4 } };
谢谢。//我试着这样做,但我不知道构造函数的论点应该是什么。对不起我的英语。这是我的第一个问题。
我猜你的问题实际上是关于如何让类的构造函数接受这种初始值设定项列表。然而,评论者似乎认为您在询问如何实现矩阵类。
为了防止我说得对,这里有一个从初始值设定项列表构造的例子。
但如果我错了,请记住,这个例子的数组实现很糟糕,你不想使用它。我选择C风格的静态数组只是因为它设置简单,而且人们熟悉它们的工作方式。
此外,如果列表中的元素太多,则此初始化将在数组的边界之外写入,因此请记住您的类。
我还假设您不关心保持构造函数constexpr。
这里是一个构造函数接受2嵌套初始值设定项列表的例子,只是…:
#include <initializer_list>
#include <iostream>
template <typename T, int row_count, int col_count>
class matrix {
T carray[row_count][col_count];
public:
matrix(std::initializer_list< std::initializer_list<T> > init_list) {
int rowidx=0;
for(const auto& row : init_list) {
int colidx=0;
for(const auto& elem : row) {
carray[rowidx][colidx++] = elem;
}
++rowidx;
}
}
void Print() const {
for(const auto& row : carray) {
for(const T& elem : row) {
std::cout << elem << " ";
}
std::cout << 'n';
}
}
};
int main() {
matrix<int, 2, 2> tonpai = { { 1,2 }, { 3,4 } };
tonpai.Print();
}
相关文章:
- 创建 std::string 的二维数组的最佳做法
- 在创建动态二维数组时,在A[i*c+j]中使用c有什么用,即c代表什么
- 如何在C++中创建二维数组的数组
- C++基于用户输入字符串长度创建二维数组
- 如何在 C++ 中的堆上创建二维数组
- 动态创建具有默认值的二维数组C++
- 如何在C++中创建给定大小的二维数组
- 如何为二维数组创建类
- C++:创建结构的二维数组
- 如何创建一个一维数组来容纳几个二维数组
- 创建二维数组
- 如何为抽象类创建二维数组
- 创建结构的二维数组会导致崩溃
- 用C++创建二维数组,并在MATLAB中使用
- 使用输入值创建二维数组的大小
- 为什么在尝试用c++创建二维数组时会出现此错误
- 如何创建二维数组
- 创建二维数组的两种方法的区别
- 如何从模板结构创建二维数组
- 如何使用基本循环创建二维数组矩阵