przypuśćmy, że chcemy stanowią dwuwymiarową matrycę int
jako wektor wektorów:wektora wektorów rezerwa
std::vector<std::vector<int> > myVec;
wewnętrzny wymiar jest stała, np 5 i zewnętrzny wymiar jest mniejszy niż lub równa się N
. Aby zminimalizować ponowny przydział, chciałbym zarezerwować miejsce:
myVec.reserve(N);
Jakiego rozmiaru przyjmuje się wewnętrzny wektor? Czy ta czysta implementacja jest zależna? W jaki sposób wpływa to na przestrzenną lokalizację danych? Ponieważ wewnętrzny wymiar jest stałą, czy istnieje sposób, aby kompilator mógł użyć tego stałego rozmiaru? Jak zmieniają się te odpowiedzi, jeśli zmienia się rozmiar wektora wewnętrznego?
wektor wektorów nie jest szczególnie dobrym sposobem reprezentowania prostokątnej matrycy. Jest bardziej przydatny w przypadku postrzępionych tablic, gdzie każdy wiersz ma inną liczbę kolumn. –