2 つのベクトルの値を組み合わせる、より読みやすい方法があるかどうか疑問に思っていました。
#include <vector>
#include <iostream>
int main( int argc, char ** argv )
{
std::vector<int> v1 = { 1, 2, 3, 7 };
std::vector<int> v2 = { 1, 2, 3, 5, 19 };
std::vector<int>::iterator v2it = v2.begin();
if( v1.size() > v2.size() )
{
for( auto v1it = v1.begin(); v1it != v1.end(); ++v1it )
{
*v1it = *v1it + *v2it;
std::cout << *v1it << std::endl;
++v2it;
}
}
else
{
auto v1it = v1.begin();
for( auto v2it = v2.begin(); v2it != v2.end(); ++v2it )
{
*v2it = *v2it + *v1it;
std::cout << *v2it << std::endl;
++v1it;
}
}
return 0;
}
上記の出力は次のとおりです。
2 4 6 12 19