Когда я использую clear()
в std::vector
, он должен уничтожить все элементы в vector
, но вместо этого это не так.
Пример кода:
vector<double> temp1(4);
cout << temp1.size() << std::endl;
temp1.clear();
cout << temp1.size() << std::endl;
temp1[2] = 343.5; // I should get segmentation fault here ....
cout << "Printing..... " << temp1[2] << endl;
cout << temp1.size() << std::endl;
Теперь я должен был получить ошибку сегментации, пытаясь получить доступ к очищенному вектору, но вместо этого он заполняет значение там (которое по мне очень плохо)
Результат выглядит следующим образом:
4
0
Printing..... 343.5
0
Это нормально? Это очень сложная ошибка, которая в основном убила мой код в течение нескольких месяцев.