我有一个类 A 声明为:
class A {
public:
vector<int> vec;
};
运行以下代码:
const A *a = new A();
sort(a->vec.begin(), a->vec.end());
给我错误:
algorithm: No matching call to swap()
在 Xcode 中。
关于为什么会发生这种情况的任何线索?
最佳答案
const A *a
表示“指向const A
的指针,这意味着a
指向的对象不能通过修改>a
. sort
修改传递给它的迭代范围的元素,由于这些元素属于a
指向的对象,所以不能修改通过 a
。
因此,您不能调用对 vector a->vec
进行排序。您需要找到不同的方法。
关于c++ - 在属于类 "No matching function for call to swap()"的 vector 上调用 sort(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33195972/