Alokowanie kilku tablic na raz
Ostatnio zmodyfikowano 2017-10-31 18:20
jasiek1309 Temat założony przez niniejszego użytkownika |
Alokowanie kilku tablic na raz » 2017-10-29 17:10:40 Chce zaalokować dwie tablice i zastanawiam się czy lepiej będzie oddzielnie: int * a = new int[ n ]; int * b = new int[ n ];
czy może obie na raz a później je podzielić: int * a = new int[ n * 2 ]; int * b = & a[ n ];
|
|
Kinexity |
» 2017-10-30 15:08:58 W teorii można tak, ale zanim w ogóle tak zrobisz, to wpierw powiedz, po co ci to? Bo ani to nie zmniejszy czasu działania ani liczby linii kodu. Pytanie jeszcze, co się stanie, gdy delete[] zastosujesz na b... |
|
YooSy |
» 2017-10-30 15:48:03 |
|
mokrowski |
» 2017-10-30 18:28:01 @YooSy ogólnie to powody mogą być. Ale to na tym poziomie nieuzasadniona optymalizacja. Teoretycznie może to polepszać trafienia w cache procesora. Nieprzeciętnie jednak komplikuje kod. |
|
jasiek1309 Temat założony przez niniejszego użytkownika |
» 2017-10-31 17:49:09 Potrzebuje zrobić tak: int n; std::cin >> n;
int * a = new int[ n ]; int * b = new int[ n ];
chyba że można zrobić "stałą" tablice i ok?: |
|
YooSy |
» 2017-10-31 18:20:32 #include <vector> std::size_t n; std::cin >> n; std::vector < int > a( n ); std::vector < int > b( n );
#include <array> constexpr std::size_t n { 10 }; std::array < int, n > a; std::array < int, n > b;
|
|
« 1 » |