泛型算法:处理容器元素并将结果存到另外容器的算法transform()

 transform()有两个版本

  • 一元谓词版
    QStringList list;
    auto it = std::inserter(list,list.begin());//每次插入将在begin()处插入
    for(int i = 0;i < 5;++i)
    {
        *it = QString("xx%1").arg(i);
        ++it;
    }

    QStringList list2;
    std::transform(list.begin(),list.end(),std::back_inserter(list2),[](QString value)
    {
        value.append("_666");
        return value;
    });

    qDebug()<<list;
    qDebug()<<list2;

 将每个字符串后面加上“_666”再存到新的容器中。

  • 二元谓词版
    QStringList list4;
    it = std::inserter(list4,list4.begin());//每次插入将在begin()处插入
    for(int i = 0;i < 5;++i)
    {
        *it = QString("yy%1").arg(i);
        ++it;
    }

    QStringList list5;
    std::transform(list.begin(),list.end(),list4.begin(),std::back_inserter(list5),[](const QString & s1,const QString & s2)
    {
        return s1 + "_" + s2;
    });
    qDebug()<<list4;
    qDebug()<<list5;

参数3是容器2的迭代器,容器2要求容器里面的元素个数不小于容器1的,参数是4是保存结果的迭代器,参数5是二元谓词函数,这里自定义了处理规则。其中s1和s2分别对应两个容器中的相应的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值