[英]How does subscripting std::array multiple times work?
如何下標多次對工作std::array
,即使所有的operator[]
返回的是一個參考,而無需使用任何代理對象(如圖所示這里 )?
例:
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<array<int, 3>, 4> structure;
structure[2][2] = 2;
cout << structure[2][2] << endl;
return 0;
}
這如何/為什么起作用?
您只需調用structure.operator[](2).operator[](2)
,其中第一個operator[]
返回對第二個operator[]
應用到的structure
的第三個數組的引用。
請注意,對對象的引用可以與對象本身完全一樣地使用。
就像您說的那樣, structure[2]
提供了對外部數組元素的引用。 作為引用,可以將其完全視為相同類型的對象。
該元素本身就是一個數組( array<int,3>
),可以將另外的[]
應用於該數組。 這將引用內部數組的元素,類型為int
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.