【发布时间】:2019-11-05 01:48:24
【问题描述】:
我有一个这样的向量:
vector<pair<const MyObj&, MyStrut>> alls;
当我这样做时
swap(alls[0], alls[1]);
它抱怨
二进制“=”:未找到接受“_Ty”类型左侧操作数的运算符(或没有可接受的转换
为什么?
【问题讨论】:
-
一般来说
const MyObj &不能被分配到,因为它是const。分配pair<X, Y>通常通过分配X和分配Y来工作,如果其中任何一个都不能被分配,那么这对也不能。swap的默认实现是赋值。