2016-11-02 10 views
0

私はpythonのように意図リストを作りたいと思います。C++の意図リストを作る方法

list = [1,2,3,4] 
newList = [ i * 2 for i in list ]  

STD、イテレータとラムダ関数を使用して、1行に同じことを行うことが可能であるべきです。

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

あなたはそれを完了できますか?

答えて

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++は、簡潔にするための言語ではありません。

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);}); 
+0

最近、range-forがトラック上にあるとき、 'for_each'は最近ではあまり意味がありません。 – bipll

関連する問題