C++(23):支持多维数组运算符

C++23中[]运算符可以支持多个参数,从而可以实现多维数组:

#include 
#include 
#include 
using namespace std;

class MatrixInvalidIndex
{
public:
	MatrixInvalidIndex(unsigned int i, unsigned int j) : m_i(i), m_j(j) {}
	string what() const
	{
		return "Invalid index(" + to_string(m_i) + "," + to_string(m_j) + ")";
	}
private:
	unsigned int m_i, m_j;
};

template
class Matrix
{
public:
    Matrix(unsigned int rows, unsigned int cols) : m_data(rows * cols), m_rows(rows), m_cols(cols) {}

    T& operator[](unsigned int i, unsigned int j)
    {
    	if(i < m_rows && j < m_cols)
    	{
    		return m_data[i * m_cols + j];
    	}
    	else
   

你可能感兴趣的:(C/C++,c++)