function template
<array>

std::get (array)

template <size_t I, class T, size_t N> T& get (array<T,N>& arr) noexcept;template <size_t I, class T, size_t N> T&& get (array<T,N>&& arr) noexcept;template <size_t I, class T, size_t N> const T& get (const array<T,N>& arr) noexcept;
獲取元素(tuple 介面)
返回 array arr 中第 I 個元素的引用。

提供了 tuple 同名函式 get 的此過載,以便 array 物件可以被視為 tuple。為此,標頭檔案 <array> 還過載了 tuple_sizetuple_element 型別,並定義了相應的成員。

模板引數

I
陣列中元素的 the position,0 表示第一個元素的位置。
size_t 是一個無符號整數型別。
T
陣列中元素的型別(通常從 arr 隱式獲得)。
N
陣列的大小(以元素數量計)(通常從 arr 隱式獲得)。

Function parameters (函式引數)

arr
一個 array 容器。

返回值

對陣列中指定位置的元素的引用。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// arrays as tuples
#include <iostream>
#include <array>
#include <tuple>

int main ()
{
  std::array<int,3> myarray = {10, 20, 30};
  std::tuple<int,int,int> mytuple (10, 20, 30);

  std::tuple_element<0,decltype(myarray)>::type myelement;  // int myelement

  myelement = std::get<2>(myarray);
  std::get<2>(myarray) = std::get<0>(myarray);
  std::get<0>(myarray) = myelement;

  std::cout << "first element in myarray: " << std::get<0>(myarray) << "\n";
  std::cout << "first element in mytuple: " << std::get<0>(mytuple) << "\n";

  return 0;
}

輸出
first element in myarray: 30
first element in mytuple: 10


複雜度

常量。

迭代器有效性

沒有變化。

資料競爭

arr 的第 I 個元素可以被呼叫者訪問或修改。同時訪問或修改 arr 的其他元素是安全的。

異常安全

無異常保證:此函式從不丟擲異常。

另見