My code:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int BinaryToDecimal(int n)
{
    int ans = 0;
    int x = 1;
    while (n > 0)
    {
        int y = n % 10;
        ans = ans + x * y;
        x = x * 2;
        n = n / 10;
    }
    return ans;
}
int DecimalToBinary(int num)
{
    vector<int> vect;
    while (num > 0)
    {
        vect.push_back(num % 2);
        num = num / 2;
    }
    int s = vect.size();
    int i = s - 1;
    for (i = s - 1; i >= 0; i--)
    {
        cout << vect.at(i);
    }
    return vect.at(i);
}
int main()
{
    int a, b;
    cout << "Enter first number: " << endl;
    cin >> a;
    cout << "Enter second number: " << endl;
    cin >> b;
    int a_deci = BinaryToDecimal(a);
    int b_deci = BinaryToDecimal(b);
    int sum = a_deci + b_deci;
    DecimalToBinary(sum);
    cout << endl;
    return 0;
}    
Output:
Enter first number: 
10101
Enter second number:
11010
101111terminate called after throwing an instance of 'std::out_of_range'what():  vector::_M_range_check: __n (which is 18446744073709551615) >= this->size() (which is 6)
What does this error message mean and how do I fix it?
 
    