我有一个 unordered_set<shared_ptr<T>> us 我想知道一根针 k 是在 us 但是 K 有类型 shared_ptr<T const> 所以 unordered_set<shared_ptr<T>>::find 抱怨它不能改变。
unordered_set<shared_ptr<T>> us
k
us
K
shared_ptr<T const>
unordered_set<shared_ptr<T>>::find
有办法解决这个问题吗?或者直接提供散列?
我尝试过 const_cast (感觉很脏)但那并没有切断它。
const_cast
使用 std::const_pointer_cast 是一个可能的解决方案。
std::const_pointer_cast
us.find(std::const_pointer_cast<T>(k));
因为你没有修改 k ,可以把警察赶走。