【发布时间】:2017-08-09 15:12:22
【问题描述】:
我正在寻找某种大小n 的所有子集,例如{{}, {1}, {1, 2} etc. }使用here描述的方法。
我的问题是尝试使用 C++11 构建一组集合。也就是说,我有一个set<set<int> > permutations,其中包含我所有的子集。如果我尝试在permutations 中包含的每个子集中插入一些整数元素i,如下所示:
for (set<set<int> >::iterator it = permutations.begin(); it != permutations.end(); ++it)
{
it->insert(i); //error here
}
我遇到“没有重载函数的实例与参数列表匹配(对象具有阻止匹配的类型限定符”错误。我的理解是迭代器 it 指的是 set<int> 对象,所以 @987654331 @ 有成员函数insert()。是什么导致了这个特定错误的出现?
【问题讨论】:
-
i的类型是什么?请提供minimal reproducible example。 -
@Carcigenicate 集合的迭代器
> 应该指向 1 个集合...不是吗? -
@Borgleader 哎呀,你是对的,我的错。
-
完整的错误是什么?
-
你不能修改set中的数据,所以你要么需要不同的容器,要么取内部set,更新并重新插入。