Я сейчас заполняю векторный массив элементов так:
std::vector<T*> elemArray;
for (size_t i = 0; i < elemArray.size(); ++i)
{
elemArray = new T();
}
Код, очевидно, был упрощен. Теперь, задав еще один вопрос (не связанный с этой проблемой, но связанный с программой), я понял, что мне нужен массив, содержащий new'd
объектов (не может быть в стеке, будет переполнен, слишком много элементов) но смежные. То есть, если бы я получил элемент без индекса массива, я смог бы найти индекс массива, выполнив returnedElement - elemArray[0]
, чтобы получить индекс элемента в массиве.
Я надеюсь, что объяснил проблему, если нет, пожалуйста, дайте мне знать, какие части, и я постараюсь уточнить.
РЕДАКТИРОВАТЬ: Я не уверен, почему ответ с наибольшим количеством голосов не рассматривается. Я пробовал это много раз. Если я пытаюсь выделить такой вектор с более чем 100 000 (приблизительно) элементов, это всегда дает мне ошибку памяти. Во-вторых, мне нужны указатели, как видно из моего примера. Внезапное изменение указателей, чтобы они не были указателями, потребует большого количества переписывания кода (хотя я и хочу это сделать, но это все еще не решает проблему, заключающуюся в том, что такое распределение векторов с несколькими миллионами элементов не работает.