jasiekkm Temat założony przez niniejszego użytkownika |
Problemz STL » 2017-04-02 18:04:28 Witam, mam problem z stl, musze dla kazdego z toru (5 torow) zrobic takie cos (zdj ponizej) ale prowadzacy powiedzial zebym zastosowal wektor wektrow i mam problem z implementacja tego. Prosze o pomoc. Probowalem tak: (zdj jeszcze nizej). char podp1[ 4 ] = { 'A', 'A', 'B', 'B' }; vector < char > tor1;
for( int i = 0; i < 4; i++ ) tor1.push_back( podp1[ i ] );
vector < char > zwolniony_tor1;
char kolejnosc[ 5 ][ 4 ] = { { 'A', 'A', 'B', 'B' }, { 'A', 'B', 'A', 'B' }, { 'C', 'D', 'D' }, { 'A', 'B', 'B', 'C' }, { 'C', 'D', 'D' } };
vector < vector < int > > tory_prawidlowe;
for( int k = 1; k < 6; k++ ) { if( k == 3 || k == 5 ) { for( int l = 1; l < 4; l++ ) { tory_prawidlowe[ k ][ l ].push_back( kolejnosc[ k ][ l ] ); } } else { for( int l = 1; l < 5; l++ ) { tory_prawidlowe[ k ][ l ].push_back( kolejnosc[ k ][ l ] ); } } }
|
|
Bielan |
» 2017-04-02 19:55:46 Pierwszy przykład pokazuje przepisanie tablicy do wektora. Nic więcej nam to nie mówi. Drugi kod też robi 'coś'. Bez kryształowej kuli albo dokładnego opisu zadania nie będziemy w stanie ci pomóc. |
|
jasiekkm Temat założony przez niniejszego użytkownika |
» 2017-04-02 20:04:24 tu nie trzeba opisu zadania, potrzebuje zrobic wektor wektrow i uzupelnic go tablica dwuwymiarowaa charow a pozniej wyswietlic. mam takie cos, ale pokazuje mi blad z odczytem z pamieci. char wagony[ 3 ] = { 'A', 'B', 'C' }; char kolejnosc[ 5 ][ 4 ] = { { 'A', 'A', 'B', 'B' }, { 'A', 'B', 'A', 'B' }, { 'C', 'D', 'D' }, { 'A', 'B', 'B', 'C' }, { 'C', 'D', 'D' } };
vector < vector < int > > tory_prawidlowe;
int a; for( int k = 0; k < 5; k++ ) { for( int l = 0; l < 4; l++ ) { tory_prawidlowe[ k ][ l ] = kolejnosc[ k ][ l ]; } };
|
|
Bielan |
» 2017-04-02 20:23:05 1. 'Coś mi nie działa', 'Coś ma działać', 'Pokazuje mi błąd'. To są sformułowania, które sprawiają, że ciężko się z tobą komunikuje ponieważ nie ma jasnej informacji. Powinieneś dokładnie określić jaki masz teraz wynik a jakiego oczekujesz. 2. Nie wiesz jak działa wektor. vectorWektor domyślnie posiada zerowy rozmiar. Więc wektor wektorów, który deklarujesz to jeden wektor, który nie zawiera żadnych wektorów. Aby coś zawierał musisz tam coś dodać albo wykonać jakąś akcję, która sprawi, że tam coś się doda. tory_prawidlowe.resize( 5 );
Wtedy będziesz miał wektor, który zawiera pięć pustych wektorów. Od tej pory można sensownie używać tory_prawidlowe[ x ] .
tory_prawidlowe[ k ][ l ] = kolejnosc[ k ][ l ];
|
To nie zadziała ponieważ wektor o indeksie 'k' nie ma elementu 'l'. Musi być najpierw dodany. tory_prawidlowe[ k ].push_back( kolejnosc[ k ][ l ] );
3. Nie wszystkie twoje tablice mają rozmiar równy '4', jesteś pewien, że wiesz co robisz? |
|
karambaHZP |
» 2017-04-02 20:35:33 prowadzacy powiedzial zebym zastosowal wektor wektrow |
To też jest utrudnianie sobie życia. Można zadeklarować wektor o rozmiarze [wys X szer] i poruszać się po nim jak po dwuwymiarowym. |
|
mokrowski |
» 2017-04-02 21:27:55 #include <iostream> #include <vector> #include <iomanip> #include <string>
using namespace std;
vector<vector<int>> makeVectorTable(size_t width, size_t height) { // XXX: Popatrz na składnię tworzenia takiego wektora return vector<vector<int>>(height, vector<int>(width)); }
void showVectorTable(const vector<vector<int>>& vectorTable) { cout << string(78, '=') << '\n'; for(const auto& row: vectorTable) { for(const auto& value: row) { cout << setw(4) << value; } cout << '\n'; } cout << string(78, '=') << '\n'; }
void fillVectorTable(vector<vector<int>>& vectorTable) { // XXX: Wypełnienie wektora wartościami index wiersza * indeks kolumny for(size_t rowIndex = 0; rowIndex < vectorTable.size(); ++rowIndex) { for(size_t columnIndex = 0; columnIndex < vectorTable[rowIndex].size(); ++columnIndex) { vectorTable[rowIndex][columnIndex] = rowIndex * columnIndex; } } }
int main() { auto table = makeVectorTable(19, 19); fillVectorTable(table); showVectorTable(table); }
|
|
jasiekkm Temat założony przez niniejszego użytkownika |
» 2017-04-02 22:36:23 Widzisz Bielan niby nie mozesz sie ze mna dogadac a rozwiazales moj problem :D dzieki slicznie |
|
« 1 » |