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

Alokowanie kilku tablic na raz

Ostatnio zmodyfikowano 2017-10-31 18:20
Autor Wiadomość
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:
C/C++
int * a = new int[ n ];
int * b = new int[ n ];
czy może obie na raz a później je podzielić:
C/C++
int * a = new int[ n * 2 ];
int * b = & a[ n ];
P-166188
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...
P-166243
YooSy
» 2017-10-30 15:48:03
Nie widzę powodu, aby w ogóle stosować takie rozwiązania.
» Kurs STL, C++Kontener tablicy (std::vector) lekcja
Kiedy stosować new i delete
N-wymiarowy widok na macierz
P-166244
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.
P-166265
jasiek1309
Temat założony przez niniejszego użytkownika
» 2017-10-31 17:49:09
Potrzebuje zrobić tak:
C/C++
int n;
std::cin >> n;

int * a = new int[ n ];
int * b = new int[ n ];

chyba że można zrobić "stałą" tablice i ok?:

C/C++
int a[ n ];
int b[ n ];
P-166289
YooSy
» 2017-10-31 18:20:32
C/C++
#include <vector>
std::size_t n;
std::cin >> n;
std::vector < int > a( n );
std::vector < int > b( n );

// lub
#include <array>
constexpr std::size_t n { 10 };
std::array < int, n > a;
std::array < int, n > b;
P-166291
« 1 »
  Strona 1 z 1