Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

get (array)

函数模板  <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;

获取元素(元组接口)

返回对数组arr的第i元素的引用。

提供了元组的同形函数get的重载,这样数组对象就可以作为元组来处理。 因此,头文件<array>还使用定义的适当成员重载tuple_size和tuple_element类型。

☲  模板参数


I
数组中元素的位置,以0作为第一个元素的位置。
size_t是一个无符号整型。
T
数组中包含的元素类型(通常从arr隐式获取)。
N
数组的大小,以元素的数量表示(通常隐式地从arr获得)。

☲  函数参数


arr
一个数组容器。

☉  返回值



数组中指定位置的元素的引用。

☣  示例



// 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的其他元素是安全的。

☂ 异常安全性



无抛出保证:此函数从不抛出异常。

🍄  另请参阅



array::at 访问元素(公众成员函数)
array::operator[] 访问元素(公众成员函数)

联系我们 免责声明 关于CandCplus 网站地图