Я часто использую, чтобы запомнить все матрицы в одном векторе, потому что в моей книге говорится, что быстрее использовать один вектор. И доступ к матрице медленнее во времени. Если у меня есть код, подобный этому:Матрицы в смежном положении памяти
int main(int argc, char **argv)
{
int mat[10][10],i;
for(i=0;i<10;i++)
mat[i][0]=99;
int *ptr=&mat[0][0];
for(i=0;i<10;i++)
{
printf("%d\n",*ptr);
ptr+=10;
}
return 0;
}
Я попытался запустить его 4/5 раз и все время печатает 10 раз 99. Так же матрицы запоминаются в contigous позиции памяти? Всегда? Если да, то почему доступ к вектору быстрее?
Можете ли вы уточнить, что вы подразумеваете под «матрицей» и «вектором»? Я ответил как мог, но я просто догадываюсь, что вы имеете в виду, основываясь на вашей примерной программе. –
2D массивы и 1D массивы. –