2023-10-11

String comparison version single character comparison performance

In a c++ exercise website, I found out that the following code

int finalValueAfterOperations(vector<string>& operations) 
{
    int result = 0;
    for(int i = 0; i < operations.size(); ++i)
    {
        operations[i] == "++X" || operations[i] == "X++"?  ++result : --result;
    }

    return result;
}

is faster than

int finalValueAfterOperations(vector<string>& operations) 
{
    int result = 0;
    for(int i = 0; i < operations.size(); ++i)
    {
        operations[i][1] == '+'? ++result : --result;
    }

    return result;
}

What may be the underlying reasons for this?

I would assume that my single character checking would be more efficient than the full string comparison. I guess the comparison implementation has some optimization happening under the hood, but I am not sure what happens. Does someone have any idea?



No comments:

Post a Comment