如何制作C ++意图列表

时间:2016-11-02 22:13:54

标签: c++ c++11 lambda containers std

我想制作像python一样的意图列表。

std::vector<int> list = {1,2,3,4} ; 
std::vector<int> newList = 

使用std,iterator和lambda函数,应该可以在一行中执行相同的操作。

join

你能完成吗?

2 个答案:

答案 0 :(得分:1)

std::transform可让您转换值并将其放在其他位置:

std::vector<int> list = {1,2,3,4};
std::vector<int> newList;

std::transform(
    list.cbegin(),
    list.cend(),
    back_inserter(newList),
    [](int x) { return x * 2; });

但实际上,C ++并不是简洁的语言。

答案 1 :(得分:0)

我找到了这个解决方案。但它并不是很好。

std::vector<int> list = {1,2,3,4};
std::vector<int> newList;
std::for_each(list.begin(), list.end(),[&newList](int val){newList.push_back(val*2);});