技术栈

多维下标运算符

Mr_WangAndy
2 小时前
c++·c++23·c++40周年·多维下标运算符
C++23新特性_多维下标运算符在C++20之前,如果想写一个二维矩阵的元素,通常又以下两种实现方式。 方式1:函数调用风格matrix(x, y)。显示方式是 重载 operator()。缺点是,()这表示一个函数调用,而[] 才代表 访问数据,这不够直观。 方式2:链式下标风格maxtrix[x][y]. 重载 operator[] 返回一个代理对象(Proxy Object),该代理对象再重载 operator[]。这种实现方式需要维护临时对象,难以优化,容易产生性能开销。 C++23 的解决方案: 直接允许 operator[]
我是有底线的