C++ 如何使用迭代器打印集合中的内容?

C++ 如何使用迭代器打印集合中的内容?,c++,set,powerset,C++,Set,Powerset,我试图打印出我的powerSet的内容,这是一个给定集合的集合,但是当我尝试迭代我的powerSet时,我得到一个C2679错误::const_iterator itr=pSet.begin();itr!=pSet.end();itr++) { coutpSet是类型std::set的引用,因此*itr将是类型std::set的引用。您试图使用std::ostream的pSet重载是类型std::set的引用,因此*itr将是类型std::set 。您正在尝试使用std::ostream重载的o

我试图打印出我的
powerSet
的内容,这是一个给定集合的集合,但是当我尝试迭代我的
powerSet
时,我得到一个C2679错误::const_iterator itr=pSet.begin();itr!=pSet.end();itr++) {
cout
pSet
是类型
std::set
的引用,因此
*itr
将是类型
std::set
的引用。您试图使用
std::ostream
pSet
重载是类型
std::set
的引用,因此
*itr
将是类型
std::set 。您正在尝试使用
std::ostream
重载的
oops对不起,是的,在我的原始代码中有一个oops对不起,是的,在我的原始代码中有一个
template <typename T>
void writePowerSet(const set<set<T>>& pSet) 
{
    for(typename set< set<T> >::const_iterator itr = pSet.begin(); itr != pSet.end(); itr++)
    {
        cout << *itr;
    }
}
template <typename T>
void writePowerSet(const std::set<std::set<T>>& pSet) 
{
    for(const auto& s : pSet)
    {
        for(const auto& x : s)
        {
            std::cout << x;
        }
     }
}