elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????  (Leído 7,975 veces)
fehnet

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #10 en: 17 Julio 2013, 11:26 am »

Un vector tiene una sola dimensión y una matriz tiene dos... dado que la memoria es lineal no pueden ser iguales.


voy a intentar poner un ejemplo...

int vector[2] = {1, 2}
int matriz[2][2] {1, 2, 3, 4};

Primer caso en la memoria
| 1 | 2 |

Segundo caso (matriz):
| 1 | 2 | 3 | 4 |

En el vector para acceder al segundo elemento se hace vector[1]

En la matriz para acceder al tercer elemento (3), se accede mediante matriz[1][0], pero realmente se almaena de forma lineal, y el compilador a partir de los subindices i, j, sabe cuantas posiciones tienen que avanzar a partir del primer elemento, es decir:

El desplazamiento es:
(i * número de elementos columna) + j




En línea

Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #11 en: 17 Julio 2013, 18:20 pm »

Depende del compilador se almacenan de forma lineal o no.

C# tiene un modo de definir las matrices para que se almacenen de forma lineal matriz[x,y].
Se ve clara la diferencia respecto a matriz
  • [y];

Un vector es como antes se comentaba : int vector[2] = {1,2}

Mientras que una matriz es int vector[2][2] = {{1,2},{3,4}};

Es mas rapido trabajar con vectores principalmente porque producen menos fallos de pagina, y el acceso es ligeramente mas rapido.



En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #12 en: 17 Julio 2013, 19:00 pm »

Depende del compilador se almacenan de forma lineal o no.
Perdona pero no, cualquier compilador actual convierte tu matriz en un vector unidimensional. Por esa razón tienes que indicar el número de columnas cuandos pasas una matriz como parámetro a una función.

Otra cosa son las matrices "dinámicas" que creas con malloc/new. Se suelen hacer con un array de punteros (y ahí si hay perdida de rendimiento porque tienes que redireccionar dos veces).
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #13 en: 17 Julio 2013, 19:16 pm »

Perdona pero no, cualquier compilador actual convierte tu matriz en un vector unidimensional. Por esa razón tienes que indicar el número de columnas cuandos pasas una matriz como parámetro a una función.

Otra cosa son las matrices "dinámicas" que creas con malloc/new. Se suelen hacer con un array de punteros (y ahí si hay perdida de rendimiento porque tienes que redireccionar dos veces).

eso mismo.

En concreto Oblivi0n, una matriz de .net tal que:

Código
  1. int[,] arr4 = new int [2,3] { {1,2,3}, {4,5,6} };

Reserva la memoria de forma lineal, no podía ser de otra forma, y tal que los elementos van en el siguiente orden: 1, 2, 3, 4, 5, 6 ... por tanto, para acceder a un elemento de la segunda fila necesitas hacer un salto... las matrices tienen tantos niveles de indirección como dimensiones posean.

Vector: 1 dimensión -> 1 nivel de indirección
Matriz típica: 2 dimensiones -> 2 niveles de indirección
...
En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #14 en: 17 Julio 2013, 19:20 pm »

Hola.

Siempre interpreté que las matrices se almacenan del modo que dice amchacon.

Row major order
Ordering of C++ Arrays

Saludos :)
En línea

aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #15 en: 20 Julio 2013, 02:46 am »

pues en todos los libros que he leido por ejemplo esto: char cadena(5) =("hola"); (perdonen lo de los parentesis pero el movil no tiene corchetes ni nada parecido)  >:(  . Segun los libros eso es un array de caracteres o vector, o matriz unidimensional. Usan cualquiera de esas definiciones para referirse a eso. Ahora con lo que decis ya no se que pensar.
En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #16 en: 20 Julio 2013, 02:48 am »

Un vector y un array unidimensional son lo mismo, una matriz es bidimensional.
En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: PORQUE ES MEJOR TRABAJAR CON VECTORES Y NO CON MATRICES????
« Respuesta #17 en: 21 Julio 2013, 02:32 am »

la matriz y un vector se leen igual sea el procesador que sea, y sea el compilador que sea, ahora la diferencia es que un vector es una matriz que tiene como particularidad que tiene  una sola fila...pero no por eso deja de ser una matriz, y las matrices en un compilador las lee como un vector ejem
Citar
[1][1]; [1][2]........[m][n-1], [m][n]/quote]
para decirlo en criollo agarra la matriz y la deja hecha un vector con la particularidad de que deben decirse exactamente donde van
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda] ¿Qué diferencias hay entre las matrices y vectores?
Programación Visual Basic
Dreamaker 3 2,717 Último mensaje 18 Julio 2010, 22:30 pm
por FFernandez
Uso de matrices o vectores de punteros
Programación C/C++
novalida 1 12,156 Último mensaje 16 Marzo 2011, 01:19 am
por Don Pollo
vectores y matrices en C
Programación C/C++
howaboutno 6 3,413 Último mensaje 6 Noviembre 2012, 21:41 pm
por BatchianoISpyxolo
ayuda con programa (matrices,vectores,funciones)
Programación C/C++
agusred 3 3,036 Último mensaje 7 Junio 2013, 23:28 pm
por Puntoinfinito
Ayuda con matrices y vectores
Programación C/C++
ezemidget 4 2,735 Último mensaje 14 Diciembre 2013, 16:23 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines