Given a number represented as an array of digits, plus one to the number
Since you are returning a result.
Pass the parameter by const reference so that you don't accidentally modify it:

vector&lt;int&gt; plusOne(vector&lt;int&gt; const&amp;  digits)


The less than operator is not defined for iterators.
You are just getting lucky.

for (it = digits.end() - 1; it &gt;= digits.begin(); --it)


To iterate over a container in the reverse direction use rbegin() and rend()

for (it = digits.rbegin(); it != digits.rend(); ++it)


To help with efficiency you could reserve space in your result:

result.reserve(digits.size()+1); // The +1 is for cases where the result overflows.
                                 // Note: reserve() does not change the size of the
                                 //       vector just the underlying capacity.


Personally I would have refactored:

    if (sum &gt; 9)
    {
        plus = 1;
        result.push_back(0);
    }
    else
    {
        result.push_back(sum);
        plus = 0;
    }


the body into:

    plus = (sum == 10) ? 1 : 0
    sum  = (sum == 10) ? 0 : sum;

    result.push_back(sum);