递增列表中元素的值

Increasing values of elements in list

本文关键字:元素 列表      更新时间:2023-10-16

我需要帮助增加mylist中元素的值并将新列表分配给mylist3。我试着像处理数组或向量一样处理它,但它不起作用。感谢任何帮助。提前谢谢。

std::list<int> mylist(myarray, myarray + sizeof(myarray) / sizeof(int));
cout << "mylist contains: ";
for (std::list<int>::iterator b = mylist.begin(); b != mylist.end(); ++b)
    cout << ' ' << *b;
cout << "n" << endl;
std::list<int> mylist3(10);
for (int z = 0; z < 10; z++) {
    mylist3[z] = mylist[z] + 5;
}
cout << "mylist3 contains: ";
for (std::list<int>::iterator f = mylist3.begin(); f != mylist3.end(); ++f)
    cout << ' ' << *f;

使用标准库轻松完成:

std::transform(mylist.begin(),mylist.end(),std::back_inserter(mylist3),
    [](int i){return i+5;});

有一种方法可以做到这一点:

#include <iostream>
#include <iterator>
#include <list>

std::list<int> mylist(std::begin(myarray), std::end(myarray)), mylist3 = mylist;
for (int & n : mylist3)
    n += 5;
std::cout << "mylist3 contains:";
for (int n : mylist3)
    std::cout << ' ' << n;
std::cout << 'n';