std::tuple

来自cppreference.com
< cpp‎ | utility
 
 
实用工具库
类型的支持 (basic types, RTTI, type traits)
动态内存管理
错误处理
程序实用工具
可变参数函数
日期和时间
函数对象
initializer_list(C++11)
bitset
hash(C++11)
关系运算符
原文:
Relational operators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
对和元组
原文:
Pairs and tuples
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
pair
tuple(C++11)
apply(C++17)
make_from_tuple(C++17)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
integer_sequence(C++14)
交换,前进和移动
原文:
Swap, forward and move
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
swap
exchange(C++14)
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
类型操作
原文:
Type operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
declval(C++11)
as_const(C++17)
 
std::tuple
成员函数
原文:
Member functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
tuple::tuple
tuple::operator=
tuple::swap
非成员函数
原文:
Non-member functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
make_tuple
tie
forward_as_tuple
None
operator=
operator!=
operator<
operator<=
operator>
operator>=
std::swap
get
Helper类
原文:
Helper classes
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
tuple_size
tuple_element
uses_allocator
ignore
 
定义于头文件 <tuple>
template< class... Types >
class tuple;
(C++11起)

类模板 std::tuple 是一个固定大小的异构值的集合。这是一般化的 std::pair

目录

[编辑] 成员函数

构造新的 tuple
(公共成员函数)
将一个 tuple 的内容赋给另一个
(公共成员函数)
将两个 tuple 的内容交换
(公共成员函数)

[编辑] 非成员函数

创建一个类型由参数类型定义的tuple对象
(函数模板) [edit]
创建一个tuple的左值引用或将一个元组拆开成多个个体对象
(函数模板) [edit]
创建一个tuple的右值引用
原文:
creates a tuple of rvalue references
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
通过连接任意数量的元组来创建一个tuple
(函数模板) [edit]
访问tuple的指定元素
原文:
tuple accesses specified element
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
根据字典顺序比较元组中的值
(函数模板) [edit]
特化的std::swap算法
(函数模板) [edit]

[编辑] 辅助类

在编译时获得tuple的大小
(类模板特化) [edit]
获得指定的元素的类型
原文:
obtains the type of the specified element
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板特化) [edit]
特化的std::uses_allocator类型特征
(类模板特化) [edit]
当使用tie拆开一个tuple时用来跳过元素的占位符
(常量) [edit]

[编辑] 示例

#include <tuple>
#include <iostream>
#include <string>
#include <stdexcept>
 
std::tuple<double, char, std::string> get_student(int id)
{
    if (id == 0) return std::make_tuple(3.8, 'A', "Lisa Simpson");
    if (id == 1) return std::make_tuple(2.9, 'C', "Milhouse Van Houten");
    if (id == 2) return std::make_tuple(1.7, 'D', "Ralph Wiggum");
    throw std::invalid_argument("id");
}
 
int main()
{
    auto student0 = get_student(0);
    std::cout << "ID: 0, "
              << "GPA: " << std::get<0>(student0) << ", "
              << "grade: " << std::get<1>(student0) << ", "
              << "name: " << std::get<2>(student0) << '\n';
 
    double gpa1;
    char grade1;
    std::string name1;
    std::tie(gpa1, grade1, name1) = get_student(1);
    std::cout << "ID: 1, "
              << "GPA: " << gpa1 << ", "
              << "grade: " << grade1 << ", "
              << "name: " << name1 << '\n';
}

输出:

ID: 0, GPA: 3.8, grade: A, name: Lisa Simpson
ID: 1, GPA: 2.9, grade: C, name: Milhouse Van Houten


[编辑] 参考

  • C++11 standard (ISO/IEC 14882:2011):
  • 20.4 Tuples [tuple]