Этот код неверен:
//Complete this function below
Number :: Number(long long int t){
//Complete this function
vector <long long int> a;
while(t)
{
a.push_back(t%10);
t=t/10;
}
num=a.data();
}
Вектор a
существует только в конструкторе. Когда конструктор выходит, a
уничтожается. Но вы сохранили указатель на данные векторов в num
, поэтому в итоге вы получите недопустимый указатель.
Вот правильный код. Как обычно, ответ: не используйте указатели .
class Number
{
std::vector<long long int> num; // don't use pointers
public:
Number(long long int t);
void largestNumber();
};
Number::Number(long long int t)
{
while (t)
{
num.push_back(t%10);
t = t/10;
}
}