我有一个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中。
有关为何发生这种情况的任何线索?
答案 0 :(得分:2)
const A *a
表示&#34;指向const A
的指针,这意味着a
指向的对象无法通过a
进行修改。 sort
修改传递给它的迭代范围的元素。由于这些元素归a
指向的对象所有,因此无法通过a
对其进行修改。
因此,您无法调用向量a->vec
的排序。你需要找到一种不同的方法。