C++ 错误:与';不匹配;接线员='; void super::findTarget(listDlist,list::iterator t){ while(t!=Dlist.end()){ 双mypos[3]; 双重目标[3]; 双FPO[3]; 双速; 双量程; 双a、b、c、D; mypos[0]=此->x; mypos[1]=此->y; mypos[2]=此->z; 范围=此->范围; 目标[0]=t->x; 目标[1]=t->y; 目标[2]=t->z; a=目标[0]-mypos[0]; b=目标[1]-mypos[1]; c=目标[2]-mypos[2]; D=sqrt(功率(a,2.0)+功率(b,2.0)+功率(c,2.0)); 数据列表。推回(D); }; };

C++ 错误:与';不匹配;接线员='; void super::findTarget(listDlist,list::iterator t){ while(t!=Dlist.end()){ 双mypos[3]; 双重目标[3]; 双FPO[3]; 双速; 双量程; 双a、b、c、D; mypos[0]=此->x; mypos[1]=此->y; mypos[2]=此->z; 范围=此->范围; 目标[0]=t->x; 目标[1]=t->y; 目标[2]=t->z; a=目标[0]-mypos[0]; b=目标[1]-mypos[1]; c=目标[2]-mypos[2]; D=sqrt(功率(a,2.0)+功率(b,2.0)+功率(c,2.0)); 数据列表。推回(D); }; };,c++,compiler-errors,C++,Compiler Errors,在第二行,while(t!=Dlist.end(){,我得到以下错误: C:\Users\Daniel\Desktop\project\super.cpp | 369 |错误:t!=Dlist.std::list::end>()中的“operator!=”不匹配| 我只是不被允许在函数内部这样做,还是我遗漏了什么?alist和list是两个不同的list。你不能将迭代器从一个迭代器与另一个迭代器进行比较。alist和list是两个不同的list。你不能比较一个迭代器从一个迭代器到另一个迭代器。我

在第二行,
while(t!=Dlist.end(){
,我得到以下错误:

C:\Users\Daniel\Desktop\project\super.cpp | 369 |错误:t!=Dlist.std::list::end>()中的“operator!=”不匹配|


我只是不被允许在函数内部这样做,还是我遗漏了什么?

a
list
list
是两个不同的
list
。你不能将迭代器从一个迭代器与另一个迭代器进行比较。

a
list
list
是两个不同的
list
。你不能比较一个迭代器从一个迭代器到另一个迭代器。

我认为不应该比较
list::iterator
list::iterator
。没有!=运算符将这两种不同类型作为参数。

我认为不应该比较
list::iterator
list::iterator
。没有!=运算符这将这两种不同的类型作为参数。

的确,谢谢。我找到了另一种循环方式。–user3290184刚才编辑确实,谢谢。我找到了另一种循环方式。–user3290184刚才编辑运算符
!=
并没有为这些对象的类实现。最终会有一个函数实现您想要的功能。..或者您必须编写一个。运算符
!=
没有为这些对象的类实现。最终会有一个函数来执行您想要的操作…或者您必须编写一个。
void super::findTarget(list<int>Dlist,list<super>::iterator t){

while(t != Dlist.end()){
 double mypos[3];
 double target[3];
 double fpos[3];
 double speed;
 double range;
 double a, b, c, D;

 mypos[0]=this->x;
 mypos[1]=this->y;
 mypos[2]=this->z;
 range = this->range;

 target[0]=t->x;
 target[1]=t->y;
 target[2]=t->z;

 a = target[0]-mypos[0];
 b = target[1]-mypos[1];
 c = target[2]-mypos[2];

 D = sqrt( pow(a,2.0)+pow(b,2.0)+pow(c,2.0));
 Dlist.push_back(D);
   };
};