【发布时间】:2017-10-12 22:52:32
【问题描述】:
我试图在一组随机点的图表上找到最左边的点。例如,在点 (3, 5) (5, 2) (8, 7) (1, 3) 中,最左边的点是 (1, 3)。一旦我这样做了,我必须将最左边的点放在向量的点 0 中。我无法切换两个变量,因为我不知道 mostLeft 最初来自哪个位置。 mostLeft 是一个包含两个整数的节点。
我尝试过使用
swap(list[0], mostLeft)
但它只是复制 mostLeft 两次。
我也试过了
Point temp = list[0];
list.erase(remove(list.begin(), list.end(). mostLeft), list.end());
list[0] = left;
list.push_back(temp);
但这给了我错误“无法将向量转换为 const char* 以删除参数”。我从网上得到了第二个代码块。我不确定它是如何工作的,但我一直看到它弹出,所以我试了一下。
有没有一种简单的方法可以交换这些值,或者我必须手动遍历向量并找到值。
【问题讨论】:
-
请提供一个有效的最小示例,该代码既不能编译,
bein()或list.end().mostleft肯定不是取自您正在使用或尝试使用的东西。 -
@mhemmy 目前还不清楚你是如何在 swap(list[0], mostLeft) 中得到 mostLeft 的
-
我猜
mostLeft不是参考。 -
我的意思是 list.begin()。
-
如果您引用错误,请引用整个内容,包括编译器肯定给您的行号/列号