Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - fehnet

#1
Cita de: eferion en 17 Julio 2013, 11:16 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


#2
Cita de: Oblivi0n en 17 Julio 2013, 02:44 AM
Los accesos a memoria en un vector son consecutivos (mas rapidos), en una matriz no.



El acceso a una matriz es exactamente igual al que se usa para acceder a un vector, los dos se almacenan como una matriz unidimensional y se accede a cada elemento a partir de un desplazamiento desde el primer elemento. No entiendo por qué dices que el acceso no es el mismo.
#3
Tampoco :(

Ni c.get(), ni getline, ni scanf.... vamos, que ha cerrado el Stream no? Es posible abrir nuevamente el flujo de entrada (cin) sin necesidad de reiniciar el programa?
#4
En Ubuntu funciona correctamente ,en mac os x con xcode es donde falla. WTF?
#5

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string word;
    cout << "palabra: ";
    getline(cin, word);
    cout << word << endl;
   
    cin.clear();
   
    cout << "otra: ";
    getline(cin, word);
    cout << word << endl;
}


Por qué cuando introduzco
HolaCtrl+D
No me deja meter la otra palabra?

THK