Search code examples
c++vector

Compilation error using g++ "error: stray '\177' in program"


I was trying to code for following program

Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).

You may assume that the intervals were initially sorted according to their start times.

Example 1:

Given intervals [1,3],[6,9] insert and merge [2,5] would result in [1,5],[6,9].

Example 2:

Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] would result in [1,2],[3,10],[12,16].

This is the relevant part of my program. Here I want to erase the few positions from the vector, but then I am getting the following error:

error: stray '\177' in program

     intervals.erase(intervals.begin() + (p+1), intervals.begin() + (q+1));

vector<Interval> Solution::insert(vector<Interval> &intervals, Interval newInterval) {

    int n = intervals.size();
    int p = -1, q = -1, a, b;

    for(int i=0; i<n; ++i) {

        if(intervals[i].start <= newInterval.start <= intervals[i+1].end)
            p = i;
        else if(intervals[i].end < newInterval.start < intervals[i+1].start)
            a = i;

        if(intervals[i].start <= newInterval.end <= intervals[i+1].end)
            q = i;
        else if(intervals[i].end < newInterval.end < intervals[i+1].start)
            b = i;
    }
    int x, z;

    if(p != -1 && q != -1)
        x = q-p;

    if(x > 0) {
        z = intervals[q].end;
        intervals.erase(intervals.begin() + (p+1), intervals.begin() + (q+1));
        intervals[p].end = z;
    }
    return vector
}

Solution

  • Did you copy that code from a website?

    I managed to reproduce your result with this snippet:

    const char* msg = "You can't copy this";

    When copied and put on coliru here you'll get the same error code.

    What I used for the above snippet in HTML code was:

    <code>const char* msg = </code>&#127;<code>"You can't copy this";
    </code>
    

    Note the &#127; character I put in there.


    To fix that, you can use a decent editor like Notepad++ that will make the stray characters visible:

    Notepad++ Screenshot