【发布时间】:2016-08-31 09:28:07
【问题描述】:
我有以下代码
class a {
public:
const int aa;
a(int aa) : aa(aa){}
};
int main() {
std::vector<a> v;
v.emplace_back(1);
v.emplace_back(2);
v.emplace_back(3);
v.emplace_back(4);
std::iter_swap(v.begin() + 1, v.rbegin());
system("pause");
return 0;
}
当我尝试交换向量的两个元素时出现错误。
Error C2280 'a &a::operator =(const a &)': attempting to reference a deleted function
我知道这是因为 a 有一个固定成员,但我不知道如何让它工作。
【问题讨论】:
-
你根本做不到。
-
嗯,我可以看到他来自哪里。他想交换对象而不是操纵它们。但是,是的,这不是 C++ 中的意图
标签: c++ c++11 vector constants swap