【问题标题】:g++ error: stray '\177' in programg++ 错误:程序中出现杂散“\177”
【发布时间】:2017-08-06 10:17:54
【问题描述】:

我正在尝试为以下程序编写代码

给定一组不重叠的区间,在区间中插入一个新区间(必要时合并)。

您可以假设间隔最初是根据它们的开始时间排序的。

示例 1:

给定区间 [1,3],[6,9] 插入和合并 [2,5] 将导致 [1,5],[6,9]。

示例 2:

给定 [1,2],[3,5],[6,7],[8,10],[12,16],插入和合并 [4,9] 将导致 [1,2] ,[3,10],[12,16]。

这是我程序的相关部分 这里。我想从向量中删除几个位置 然后我收到以下错误

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
}

【问题讨论】:

  • 您的程序代码中使用了错误字符。
  • 我不知道,但是当我从程序中删除 p+1 和 q+1 时​​它会起作用
  • @user0042 不完全是。在那里,问题是正在编译的文件不应该被编译。在这里,问题在于文件包含不应该包含的内容。
  • 这是一个保守的秘密,有经验的程序员如何解决他们起初不理解的错误:他们用谷歌搜索错误信息。真的。然后他们阅读了比第一个结果更多的内容。直到他们明白问题所在。这就像一个秘密的超级大国。

标签: c++ vector


【解决方案1】:

您是否从网站复制了该代码?

我设法用这个 sn-p 重现了你的结果:

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

复制并放在 coliru here 上时,您会得到相同的错误代码。

我在 HTML 代码中用于上述 sn-p 的是:

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

注意我输入的&amp;#127; 字符。


要解决这个问题,您可以使用像 Notepad++ 这样不错的编辑器,它可以使杂散字符可见:

【讨论】:

  • 不,我没有复制此代码。这个问题在 interviewbit 上,我正在解决这个问题并得到这个错误。告诉我如何从结构向量中删除位置
  • @Deepak 如前所述,使用 Notepad++ 之类的编辑器准确查看哪些字符不好。
猜你喜欢
  • 1970-01-01
  • 2011-07-07
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多