Rozbicie tablicy dwuwymiarowej na dwie jednowymiarowe

0

Witam wszystkich, mam problem z tablicami a mianowicie mam tablice dwuwymiarową i chce z niej zrobić dwie jednowymiarowe.

wejscie:
1 2
2 4
4 1
3 3
1 4
otrzymuje tablice x:
1
2
4
3
1
lecz tablica y wygląda tak:
1
2
2
4
itd.

kod:

 	
tab [j][i];
int tab_x[5];
 int tab_y[5];

for(int j=0;j<5;j++){
       tab_x[j]=tab[j][0];
       tab_y[j]=tab[0][j];
}

cout<<"tablica X "<<endl;
    for(int j=0;j<5;j++){
   	cout << tab_x[j]<<endl;
}
cout << endl;

cout<<"tablica Y "<<endl;
   for(int j=0;j<10;j++){
   	cout << tab_y[j]<<endl;
   }
   }

Proszę o podpowiedź jak rozwiązać ten problem. Chce to zrobić jak powyżej. Dziękuję za wszelkie podpowiedzi.

1
tab_y[j]=tab[j][1];

i popraw

 for(int j=0;j<10;j++){
       cout << tab_y[j]<<endl;

bo wychodzisz po za tablice...

0

A może tak lepiej?

#include <iostream>

using namespace std;

int main()
{
    int tab[5][5] = {{1,2,4,3,1},{2,4,1,3,4}};
    int tab1[5],tab2[5];
    for(int i=0;i<2;i++)
        for(int j=0;j<5;j++)
            if(i<1)tab1[j]=tab[i][j];
            else tab2[j]=tab[i][j];

    for(int i=0;i<5;i++){
        cout << "tab1 [" << i << "]: " << tab1[i] << ", tab2[" << i << "]: " << tab2[i] << endl;
    }

    system("pause");
    return 0;
}

https://ideone.com/cf9ntT

EDIT:
Chociaż warunek w pętli czyni program wolniejszym...
Twoja aplikacja jest dużo szybsza.

0

Najszybciej to będzie chyba w ten sposób:
Https://ideone.com/UAGXv6

Aczkolwiek nie jest to tworzenie nowych tablic.

PS: piszę z komórki dlatego nie wkleiłem kodu tutaj.

2

Doprawdy, wspaniałe kombinacje.

using row = array<int, 5>;
array<row, 2> tab = {{
	{{1,2,4,3,1}},
	{{2,4,1,3,4}}
}};
auto splited_1 = tab[0];
auto splited_2 = tab[1];

http://ideone.com/g34w1i
No i zostaje ewentualne move-semantic bądź najzwyklejsze std::copy

0

Dzięki WIELKIE !

1 użytkowników online, w tym zalogowanych: 0, gości: 1