泛型算法:对象自增后赋给序列中的元素算法iota()

#define debug qDebug()<<
int main(int argc, char *argv[])
{
    QList<int> list1{26,33,44,66,77};
    int init = 0;
    std::iota(list1.begin(),list1.end(),init);
    debug list1;
}

这里init = 0赋给第一个元素,然后++init后赋给下一个元素。(不影响原来的init的值)

对于自定义的数据类型,要使用这个算法必须实现自增运算符“++”操作(加号在前的自增运算符)。例:

struct ceshi
{
    int frist = 0;
    int second = 0;
    ceshi& operator++()
    {
        ++this->frist;
        ++this->second;
        return *this;
    }
};

这里实现自定义数据类型“ceshi”的"++"运算:内部的数据加1;

#define debug qDebug()<<
int main(int argc, char *argv[])
{
    QList<ceshi> list;
    ceshi c;
    c.frist = 5;
    c.second = 7;
    list << c;

    c.frist = 10;
    c.second = 14;
    list << c;

    c.frist = 15;
    c.second = 28;
    list << c;

    debug "操作前";
    std::for_each(list.begin(),list.end(),[](const ceshi & c)
    {
        debug c.frist << c.second;
    });

    c.frist = 100;
    c.second = 200;
    std::iota(list.begin(),list.end(),c);

    debug "操作后";
    std::for_each(list.begin(),list.end(),[](const ceshi & c)
    {
        debug c.frist << c.second;
    });
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值