c++11pair和tuple

pair是map的元素,tuple是基于不定参数模板,对pair的扩充。

//pair和tuple
    std::pair<int,QString>pair1{1,"22222222222222"};
    auto pair2 = std::make_pair<int,int>(1,2);
    auto pair3 = std::make_pair(1,2);
    qDebug()<<"pair1"<<pair1.first<<pair1.second;
    qDebug()<<"pair2"<<pair2.first<<pair2.second;
    qDebug()<<"pair3"<<pair3.first<<pair3.second;
    qDebug()<<"pair3"<<std::get<0>(pair3)<<std::get<1>(pair3);
    std::tuple<int,int,int,double,float,QString>tuple1{1,2,3,4.5,6.7,"aaaawwwwssss"};
    auto tuple2 = std::make_tuple(1,2,3,4.5,6.7,"aaaawwwwssss");
    qDebug()<<std::get<0>(tuple1)<<std::get<1>(tuple1)<<std::get<2>(tuple1)<<std::get<3>(tuple1)<<std::get<4>(tuple1)<<std::get<5>(tuple1);
    qDebug()<<std::get<0>(tuple2)<<std::get<1>(tuple2)<<std::get<2>(tuple2)<<std::get<3>(tuple2)<<std::get<4>(tuple2)<<std::get<5>(tuple2);
    std::get<0>(tuple2) = 666;//修改值,类型不可变
    qDebug()<<std::get<0>(tuple2)<<std::get<1>(tuple2)<<std::get<2>(tuple2)<<std::get<3>(tuple2)<<std::get<4>(tuple2)<<std::get<5>(tuple2);
    //获取tuple的数量,decltype(tuple2获取tuple的类型
    qDebug()<<std::tuple_size<decltype(tuple2)>::value;
    //获取tuple元素的类型 double
    std::tuple_element<4,decltype(tuple2)>::type ffff;
    qDebug()<<typeid(ffff).name();
    //tuple cat
    auto tuple3 = std::tuple_cat(tuple1,tuple2);
    qDebug()<<std::get<0>(tuple3)<<std::get<1>(tuple3)<<std::get<2>(tuple3)<<std::get<3>(tuple3)<<std::get<4>(tuple3)<<std::get<5>(tuple3)<<std::get<6>(tuple3)<<std::get<7>(tuple3)<<std::get<8>(tuple3)<<std::get<9>(tuple3)<<std::get<10>(tuple3)<<std::get<11>(tuple3);

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值