【发布时间】:2015-08-04 20:51:43
【问题描述】:
您好,我尝试创建一个模板方法来按对象的 x 坐标对对象向量进行排序。他们用'='符号给我操作数错误
main里面有一些代码,vector point2d已经填充了数据。
vector<Point2D> point2d;
.....
point2d = sortByAscX(point2d, point2d.size());
我的模板.h
template <class T>
vector<T> sortByAscX(vector<T> a1, int size) {
for(int x=0; x<size; x++) {
for(int y=0; y<size-1; y++) {
if(a1[y].getX()<a1[y+1].getX()) {
int temp = a1[y+1].getX();
a1[y+1].setX(a1[y].getX());
a1[y].setX(temp);
}
}
}
return a1;
}
错误
MyTemplates.h:32:20: error: lvalue required as left operand of assignment
a1[y+1].getX() = a1[y].getX();
^
MyTemplates.h:34:18: error: lvalue required as left operand of assignment
a1[y].getX() = temp;
【问题讨论】:
-
getX() 返回一个值。您正在将文字分配给另一个文字。
-
我尝试更改设置值,但结果为 0