Сначала я хочу сказать, что у меня есть вектор, в котором есть тысячи векторов внутри. Каждый из этих внутренних векторов содержит тысячи чисел внутри. Я хочу как можно больше сохранить безопасность памяти и использование памяти как минимум.Вектор распределения памяти указателя вектора
Я хочу спросить, что если у меня есть код похож на ниже
int size = 10;
vector<vector<double>>* something = new vector<vector<double>>(size);
vector<double>* insideOfSomething;
for(int i = 0; i < size; i++){
insideOfSomething = &(something->at(i));
//...
//do something with insideOfSomething
//...
}
Я знаю, что «что-то» будет создан в куче. Я не понимаю, где размещаются векторы, «insideOfSomething» указывает? Если они созданы в стеке, то это означает, что у меня есть векторный указатель, который указывает вектор в кучу, который имеет векторы внутри которых создаются в стеке? (Я очень запутался сейчас.)
Если у меня есть код, похожий на приведенный ниже;
vector<vector<double>*>* something = new vector<vector<double>*>(size);
vector<double>* insideOfSomething;
for(int i = 0; i < size; i++){
something->at(i) = new vector<double>();
insideOfSomething = something->at(i);
//...
//do something with inside insideOfSomething
//...
}
Право знаю, что все мои векторы хранятся в куче, верно?
Какой из них более полезен в соответствии с управлением памятью?
очень хорошее объяснение. Большое спасибо.. – emreakyilmaz