¿Cuál es la forma más rápida de transponer una matriz en C ++?

Tengo una matriz (relativamente grande) que necesito transponer. Por ejemplo, supongamos que mi matriz es

a b c d e f
g h i j k l
m n o p q r 

Quiero que el resultado sea el siguiente:

a g m
b h n
c I o
d j p
e k q
f l r

¿Cuál es la forma más rápida de hacer esto?

Respuestas a la pregunta(8)

Su respuesta a la pregunta