10

C++ では、次の 2 つのベクトルがあるとしintます。

A = [1, 2, 3 ,4]; 
B = [1, 2, 3, 4]; 

それらをペアの1つのベクトルにマージするにはどうすればよいですか:

[(1,1), (2,2), (3,3), (4, 4)]

もちろん、ループでそれを行うことができます。しかし、適切な STL 関数と反復子を使用してそれを行うことができるでしょうか?

4

2 に答える 2

20

これにはアルゴリズムを使用できます。

std::vector<std::pair<int, int>> target;
target.reserve(A.size());
std::transform(A.begin(), A.end(), B.begin(), std::back_inserter(target),
               [](int a, int b) { return std::make_pair(a, b); });
于 2013-08-28T02:23:49.543 に答える