1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
using matrix = vector< vector<int> >;
//======================================================================
matrix transpose( const matrix &M )
{
int rows = M.size();
int cols = M[0].size();
matrix T( cols, vector<int>( rows ) );
for ( int i = 0; i < rows; i++ )
{
for ( int j = 0; j < cols; j++ ) T[j][i] = M[i][j];
}
return T;
}
//======================================================================
void write( const matrix &M )
{
const int w = 1;
for ( auto row : M )
{
for ( auto e : row ) cout << setw( w ) << e << ' ';
cout << '\n';
}
}
//======================================================================
int main()
{
matrix M = { { 0, 0, 0, 1, 1, 1, 1 },
{ 0, 1, 1, 0, 0, 1, 1 },
{ 1, 0, 1, 0, 1, 0, 1 } };
matrix T = transpose( M );
cout << "Original matrix:\n";
write( M );
cout << "\n\n";
cout << "Transposed matrix:\n";
write( T );
}
|