This funtion adds two long intergers of the same length, this one seems to be fine.
Code:
.

void add_integers(INTDEQUE &sum, INTDEQUE X, INTDEQUE Y)
{

	int x,y;
	int carry =0;
	int result =0;

	while (!X.empty() && !Y.empty())
	{
		x = X.back ();
		y = Y.back ();
		cout <<"\n  " << x << ", " << y;
		X.pop_back ();
		Y.pop_back ();

		result = x+y + carry;
		{
			carry = result / 10;
			result = result % 10;
		}
		sum.push_front (result);

	}

}
.

However I changed the code to this, so that deques of different lenghts can be added. But it doesn't work. Could you please show me where I'm going wrong?

Code:
.
void sum_accumulate (INTDEQUE &sum,  INTDEQUE X, INTDEQUE Y)
{
	int x,y;
	int carry = 0;
	int result = 0;

	while (!X.empty () && !Y.empty ())
	{
		x = X.back ();
		y = Y.back ();
		cout <<"\n  " << x << ", " << y;
		X.pop_back ();
		Y.pop_back ();
		
		result = x + y + carry;

		carry = result / 10;
		result = result % 10;
		sum.push_front (result);
		sum.insert(sum.end(), '-1');

	}

	  INTDEQUE::iterator pdeque;	
	  cout << "\nThe sum of the two numbers is :";
	  for (pdeque = sum.begin();  sum.end != '-1'; pdeque++)
		    cout <<  *pdeque;

	  cout << '\n';
}
.
Thanks.