Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Jak najlepiej przekazać kopię tablicy dwuwymiarowej do funkcji

Ostatnio zmodyfikowano 2014-05-19 16:59
Autor Wiadomość
ArgonZapan
Temat założony przez niniejszego użytkownika
[C++] Jak najlepiej przekazać kopię tablicy dwuwymiarowej do funkcji
» 2014-05-14 23:10:03
Jaki jest najwydajniejszy sposób przekazania kopii tablicy dwuwymiarowej do funkcji ?
P-110026
00Andre
» 2014-05-15 00:18:05
Według mnie najlepiej będzie przez Strukturę:
C/C++
#include <iostream>

struct TAB
{
    int tablica[ 2 ][ 2 ];
};

int funkcja( TAB & a )
{
    std::cout << a.tablica[ 0 ][ 0 ];
}

int main()
{
    TAB inna_tablica;
    inna_tablica.tablica[ 0 ][ 0 ] = 2;
    funkcja( inna_tablica );
    inna_tablica.tablica[ 0 ][ 0 ] = 32;
    std::cout << std::endl;
    funkcja( inna_tablica );
    return 0;
}
P-110028
MrPoxipol
» 2014-05-15 10:17:19
Jaki jest najwydajniejszy sposób przekazania kopii tablicy dwuwymiarowej do funkcji ?
Przekazywanie tablicy dwuwymiarowej (i jakiejkolwiek tablicy) przez kopie nie jest wydajne i należy przekazywać normalnie.
Jednak jeśli chcesz to zrobić (po co?) to najwygodniej użyć wektora wektorów.
P-110033
ArgonZapan
Temat założony przez niniejszego użytkownika
» 2014-05-15 11:49:05
Dzięki za wskazówki, tworzę sztuczną inteligencje do warcab i niestety nie mam innego pomysłu jak przekazywanie kopii do każdego węzła.
P-110034
akwes
» 2014-05-16 10:12:48
Jeżeli chcesz przesłać taką tablicę tylko do odczytu to możesz przesłać tablicę przez wskaźnik lub opakować ją w strukturę i przesłać przez stałą referencję.

Jeżeli potrzebujesz wykonywać operacje na tej tablicy i potrzebujesz jej kopi aby zmiany nie afektowały oryginalnej tablicy to najwygodniej będzie taką tablicę opakować w strukturę i przesłać ją przez wartość, ewentualnie przesłać przez stałą referencję i samemu skopiować jej zawartość.

Opakowując planszę w strukturę uzyskasz czytelniejszy zapis oraz wyższą hermetyzację danych, dzięki czemu łatwiej będzie wprowadzać ewentualne zmiany.
P-110098
Adik80
» 2014-05-16 12:43:00
Zazwyczaj zamiast przkazywac cala plansze lepiej jest: zrobic ruch, wywolac funkcje, cofnac ruch.
P-110106
ArgonZapan
Temat założony przez niniejszego użytkownika
» 2014-05-18 19:13:39
@akwes
Żałuję że tak nie zrobiłem wcześniej, teraz za dużo byłoby zmieniania

@Adik80
Tak właśnie zrobiłem, tylko że czasami staję się to uciążliwe :) Przy biciu damką.
P-110327
akwes
» 2014-05-19 07:59:58
@ArgonZapan,

Błędy w projekcie interfejsu są najgorsze ponieważ najbardziej afektują na kod, czasami zły interfejs potrafi tak bardzo utrudnić wykonanie projektu, że projekt nie zostaje dokończony. Im wcześniej wykryjemy błąd i im wcześniej go naprawimy tym mniej będzie nas to kosztować zasobów. Dotyczy to nie tylko interfejsów ale całego życia produktu, od specyfikacji przez projektowanie aż do implementacji i testowania.

Im dalej sięgam pamięcią tym więcej sobie przypominam projektów, które po prostu przepisywałem od nowa przez - między innymi - błędy w interfejsie. Na tym polega nauka, nie ma sensu się na siłę męczyć. Jeżeli jest to dla Ciebie duża niedogodność to mimo wszystko próbuj poprawić błąd albo rozważ przepisanie projektu.
P-110364
« 1 » 2
  Strona 1 z 2 Następna strona