Std :: векторные элементы инициализируютC++

Программы на C++. Форум разработчиков
Anonymous
Std :: векторные элементы инициализируют

Сообщение Anonymous »

std::vector v1(1000);
std::vector v2(1000);
std::vector v3(1000);
< /code>

Как инициализируются элементы этих 3 векторов? Я верил, что примитивы остаются неопределенными. Я создаю вектор с элементами 300000000, даю ненулевые значения, удаляю его и воссоздаю его, чтобы избежать четкой памяти ОС для безопасности данных. Элементы воссозданного вектора тоже были 0. < /P>

А как насчет итератора? Есть ли начальное значение (0) для конструктора по умолчанию или начального значения остается неопределенным? Когда я проверяю это, итераторы указывают на 0, но это может быть OS < /p>

Когда я создаю специальный объект для отслеживания конструкторов, я увидел это для первого объекта, вектор запустите конструктор по умолчанию, а для всех остальных он запускает конструктор копирования. Это стандарт? < /P>

Есть ли способ полностью избежать инициализации элементов? Или я должен создать свой собственный вектор? (Боже мой, я всегда не говорю о другой векторной реализации)
Я спрашиваю, потому что я использую ультра огромные разреженные матрицы с параллельной обработкой, поэтому я не могу использовать push_back (), и, конечно, я не хочу бесполезной инициализации, когда позже я изменю значение. < /P>

Подробнее здесь: https://stackoverflow.com/questions/109 ... itializing

Вернуться в «C++»