C++での単純な2コンテナのzip関数は次のとおりです。
template <typename A, typename B>
std::list<std::pair<A, B> > simple_zip(const std::list<A> & lhs,
const std::list<B> & rhs)
{
std::list<std::pair<A, B> > result;
for (std::pair<typename std::list<A>::const_iterator,
typename std::list<B>::const_iterator> iter
=
std::pair<typename std::list<A>::const_iterator,
typename std::list<B>::const_iterator>(lhs.cbegin(),
rhs.cbegin());
iter.first != lhs.end() && iter.second != rhs.end();
++iter.first, ++iter.second)
{
result.push_back( std::pair<A, B>(*iter.first, *iter.second) );
}
return result;
}
これを可変個引数テンプレートを使用して任意の数のコンテナーに拡張するにはどうすればよいですか?
a of s(各リストに異なるタイプを含めることができます)general_zip
を受け入れて、 aofsを返したいのですが。tuple
list
list
tuple