如果我有一个包含成对 int 的集合,
set<pair<int,int> > cells;
如何使用“查找”找到一对是否存在于集合中。我可以使用“查找”来设置一个值,但不能为一对设置。
我正在尝试,
cells.insert(make_pair(1,1));
set<int,int>::iterator it;
it=cells.find(pair<int,int>(1,1));
error: no match for 'operator=' in 'it = cells.std::set<_Key, _Compare, _Alloc>::find<std::pair<int, int>, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >((*(const key_type*)(& std::pair<int, int>((* &1), (* &1)))))'|
有没有人有任何想法?谢谢!
原文由 Safwan Ull Karim 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是您的集合是一组整数
std::pair<int,int>
,而不仅仅是<int,int>
。更改以修复您的代码。如果您使用的是 c++11 或更高版本,则可以使用 auto 关键字。