[小丁笔记] pair & tuple & tie

pair 的用法

头文件

<utility>

构造

pair<T1,T2> p(v1,v2);
偷懒定义 typedef pair<int,string> isp;
有个系统函数 make_pair(v1,v2) 返回值就是对应类型的一个pair

访问

p.first 访问左元素
p.second 访问右元素

特性

支持运算符 = == <
预定义了<运算 先比较first再比较second

tuple 的用法

pair的扩展,从c++11开始支持,基本上是元素个数扩展到N个的pair

头文件

<tuple>

构造

tuple<T1,T2,T3> t(v1,v2,v3);

make_tuple(v1,v2,v3);

访问

get<i>(t)

用于获取tuple t 的第 i 个元素, 下标从0开始
这个东西生成的是一个引用,因此tuple的内容是可以修改的

特性

支持运算符 = == !=

tuple_size::value 给定了成员数量

tuple的元素可以是引用,比如 tuple<T1&> t(ref&) 然后std::tie的实现就很合理了

std::tie

头文件

<tuple>

用法

tie(a,b,c,d)

用于将变量包成一个临时的tuple
实现方法就是造一个 tuple<T1&,T2&,T3&,T4&>
然后就可以用 tie(a,b,c,d) = t 了

用于多回传值的函数

  tuple<int,int> function(){
      ......
  }
  tie(n,m)=function();

妙啊

posted @ 2022-02-04 13:19  Aireen_Ye  阅读(41)  评论(0编辑  收藏  举报
底部 顶部 留言板 归档 标签
Der Erfolg kommt nicht zu dir, du musst auf den Erfolg zugehen.