#include #include #include std::vector> createNewList( std::vector> & list ) { int minlength = std::min_element( list.begin( ) , list.end( ) , []( auto & listA , auto & listB ) { return listA.size( ) < listB.size( ) ; } )->size( ) ; std::vector> result ; std::vector partialResult ; for ( int i = 0 ; i < minlength ; i++ ) { for ( auto it = list.begin( ) ; it != list.end( ) ; it++ ) { partialResult.push_back( *(it->begin() + i) ) ; } result.push_back( partialResult ) ; partialResult.clear( ) ; } return result ; } int main( ) { std::vector array1 {'I', 'L' , 'O', 'V' , 'E' , 'Y' , 'O', 'U' } ; std::vector array2 {'2', '4' , '0', '3', '2' , '0' , '1' , '9' } ; std::vector array3 {'!' , '?' , 'F', '$' , '%' , '^' , '&' , '*' } ; std::vector> list ; list.push_back( array1 ) ; list.push_back( array2 ) ; list.push_back( array3 ) ; std::vector> result = createNewList( list ) ; for ( auto & li : result ) { for ( auto it = li.begin( ) ; it != li.end( ) ; it++ ) { std::cout << *it << ' ' ; } std::cout << std::endl ; } return 0 ; }