#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;
});
}