[C++] Jak najlepiej przekazać kopię tablicy dwuwymiarowej do funkcji
Ostatnio zmodyfikowano 2014-05-19 16:59
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 ? |
|
00Andre |
» 2014-05-15 00:18:05 Według mnie najlepiej będzie przez Strukturę: #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; }
|
|
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. |
|
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. |
|
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. |
|
Adik80 |
» 2014-05-16 12:43:00 Zazwyczaj zamiast przkazywac cala plansze lepiej jest: zrobic ruch, wywolac funkcje, cofnac ruch. |
|
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ą. |
|
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. |
|
« 1 » 2 |