拥有此代码
#include <vector>
#include <iostream>
using namespace std;
size_t num_break_points(const vector<unsigned int> in_seq)
{
vector<unsigned int> in{ 0 };
in.insert(in.end(), in_seq.begin(), in_seq.end());
in.push_back(in_seq.size() + 1);
size_t ret = 0;
for (size_t i = 0; i < in.size() - 1; i++)
{
if (in[i + 1] - in[i] != 1)
ret++;
}
std::cout<<ret<<" "<<"Printed out variable x"<<endl;
return ret;
}
int main(){
vector<unsigned int> v { 3, 4, 5, −12, −8, −7, −6, 1, 2, 10, 9, −11, 13, 14 };
num_break_points(v);
return 0;
}
我将一个向量传递给一个具有一些负数的函数,但是我得到了
prog.cpp:23:5:错误:在程序中迷路'\ 342' 向量v {3,4,5,-12,-8,-7,-6,1,2,10,9,-11,13,14}; ^ prog.cpp:23:5:错误:在程序prog.cpp中错误'\ 210':23:5:错误:在程序中错误'\ 222'
我错过了什么?
如果我删除了无符号的矢量定义,并将负值设为正值,如:
#include <vector>
#include <iostream>
using namespace std;
size_t num_break_points(const vector< int> in_seq)
{
vector< int> in{ 0 };
in.insert(in.end(), in_seq.begin(), in_seq.end());
in.push_back(in_seq.size() + 1);
size_t ret = 0;
for (size_t i = 0; i < in.size() - 1; i++)
{
if (in[i + 1] - in[i] != 1)
ret++;
}
std::cout<<ret<<" "<<"Printed out variable x"<<endl;
return ret;
}
int main(){
vector< int> v {3, 4, 5, 12, 8, 7, 6, 1, 2, 10, 9, 11, 13, 14};
num_break_points(v);
return 0;
}
我明白了:
10打印出变量x
答案 0 :(得分:2)
此错误消息表示初始化矢量的行上有无效字符。可能-
不正确-
,例如如果你复制了这一行,它可能是一些UTF8字符。
答案 1 :(得分:1)
您的'-'
不是实际减号,您可能是从pdf或电子书中复制的
同样使用负值会导致v
缩小vector<unsigned int>