【发布时间】:2014-04-19 22:15:13
【问题描述】:
我在双端队列中有 const 对象:
class ConstClass {
public:
ConstClass(int variable): variable_(variable) {}
private:
const int variable_;
};
std::deque<ConstClass> objects;
objects.push_back(ConstClass(1));
objects.push_back(ConstClass(2));
objects.push_back(ConstClass(3));
如何将第二个元素替换为另一个元素?
如果我尝试使用 [] = 或 std::replace,我会得到:
编译器无法为类“ConstClass”生成运算符 =
我能想到的唯一方法是创建空双端队列,push_back() 那里的“对象”中的所有元素(用新元素替换第 N 个元素),然后 clear () 'objects' 双端队列和 push_back() 从临时双端队列复制的元素返回到 'objects'..
我确信有更理智的方法可以做到这一点,但我不知道怎么做?
【问题讨论】:
-
您的编译器不会为具有 const 成员的类生成默认赋值运算符,但您可以定义自己的...