Я пытаюсь заполнить вектор, разыменовывая смарт-указатель. Во время выполнения программа вылетает после одной итерации первого цикла for, используемого для ввода переменной input.
using namespace std;
class Measurement
{
protected:
int sample_size;
string label;
shared_ptr <vector<double>> data;
public:
// parameterised constructor
Measurement(string pLabel, int pSample_size)
{
label = pLabel;
sample_size = pSample_size;
cout << "Please input your dataset one entry at a time:" << endl;
for (int i = 0; i < sample_size; i++)
{
double input;
cin >> input;
data->push_back(input); // NOT WORKING???
}
}
};
int main()
{
Measurement A("xData", 5);
return 0;
}
При использовании отладчика VS выдается исключение (Исключение: нарушение прав чтения.
std :: _ Vector_alloc>> :: _ Myend (...) вернул 0xC.) в векторный файл, в частности строки 1793 - 1795:
bool _Has_unused_capacity() const _NOEXCEPT
{ // micro-optimization for capacity() != size()
return (this->_Myend() != this->_Mylast());
В чем причина этой ошибки?