镇江网站建设企业,网站seo收费,asp网站模板,明年做哪个网站致富定义于头文件 utility
std::pair 是一个结构体模板#xff0c;其可于一个单元存储两个相异对象。 pair 是 std::tuple 的拥有两个元素的特殊情况。 访问 pair 的一个元素
std::get(std::pair)
template size_t I, class T1, class T2 typename std::tuple…定义于头文件 utility
std::pair 是一个结构体模板其可于一个单元存储两个相异对象。 pair 是 std::tuple 的拥有两个元素的特殊情况。 访问 pair 的一个元素
std::get(std::pair)
template size_t I, class T1, class T2 typename std::tuple_elementI, std::pairT1,T2 ::type get( pairT1, T2 p ) noexcept;(1)(C11 起) (C14 前)template size_t I, class T1, class T2 constexpr std::tuple_element_tI, std::pairT1,T2 get( pairT1, T2 p ) noexcept;(1)(C14 起)template size_t I, class T1, class T2 const typename std::tuple_elementI, std::pairT1,T2 ::type get( const pairT1,T2 p ) noexcept;(2)(C11 起) (C14 前)template size_t I, class T1, class T2 constexpr const std::tuple_element_tI, std::pairT1,T2 get( const pairT1,T2 p ) noexcept;(C14 起)template size_t I, class T1, class T2 typename std::tuple_elementI, std::pairT1,T2 ::type get( std::pairT1,T2 p ) noexcept;(3)(C11 起) (C14 前)template size_t I, class T1, class T2 constexpr std::tuple_element_tI, std::pairT1,T2 get( std::pairT1,T2 p ) noexcept;(3)(C14 起)template size_t I, class T1, class T2 constexpr const std::tuple_element_tI, std::pairT1,T2 get( const std::pairT1,T2 p ) noexcept;(4)(C17 起) template class T, class U constexpr T get(std::pairT, U p) noexcept; (5)(C14 起) template class T, class U constexpr const T get(const std::pairT, U p) noexcept; (6)(C14 起) template class T, class U constexpr T get(std::pairT, U p) noexcept; (7)(C14 起) template class T, class U constexpr const T get(const std::pairT, U p) noexcept; (8)(C17 起) template class T, class U constexpr T get(std::pairU, T p) noexcept; (9)(C14 起) template class T, class U constexpr const T get(const std::pairU, T p) noexcept; (10)(C14 起) template class T, class U constexpr T get(std::pairU, T p) noexcept; (11)(C14 起) template class T, class U constexpr const T get(const std::pairU, T p) noexcept; (12)(C17 起) 用类 tuple 的接口从 pair 提取元素。
若序号 I 不是 0 或 1 则基于范围的重载 (1-4) 无法编译。
若类型 T 与 U 相同则基于类型的重载 (5-12) 无法编译。
参数
p-要提取内容的 pair
返回值
1-4) 若 I0 则返回到 p.first 的引用若 I1 则返回到 p.second 的引用。
5-8) 返回到 p.first 的引用。
9-12) 返回到 p.second 的引用。
调用示例
#include iostream
#include string
#include iomanip
#include complex
#include tuple
#include typeinfostruct Cell
{int x;int y;Cell() default;Cell(int a, int b): x(a), y(b) {}bool operator (const Cell cell) const{return x cell.x y cell.y;}bool operator (const Cell cell) const{if (x cell.x){return true;}return y cell.y;}
};std::ostream operator(std::ostream os, const Cell cell)
{os { cell.x , cell.y };return os;
}std::ostream operator(std::ostream os, const std::pairint, Cell pair)
{os pair{ pair.first { pair.second.x , pair.second.y }};return os;
}int main()
{std::pairint, Cell pair1(101, Cell(102, 103));std::cout pair1: std::setw(8) std::get0(pair1) std::get1(pair1) std::endl;std::pairint, Cell pair2(101, Cell(102, 103));std::cout pair2: std::setw(8) std::get0(std::move(pair2)) std::get1(std::move(pair2)) std::endl;return 0;
}
输出
pair1: 101 {102,103}
pair2: 101 {102,103}