如果我有一个C++的set和iterator:
错误的代码在一个基本的 for 循环中:
set<Person> personList;
set<Person>::const_iterator location;
我该如何打印出 set 的内容呢?这些内容都是 Person 对象,并且我已经为 Person 重载了运算符<<。错误的代码在一个基本的 for 循环中:
cout << location
Netbeans提示:
proj.cpp:78: error: no match for ‘operator<<’ in ‘std::cout << location’
看起来它想要为迭代器的operator<<进行重载。
基本上,我正在处理以前存储在数组格式中的对象,但现在是在一个集合中。对于集合,cout << array[i]
的等效方法是什么?
for(int i=0; i<=s.size(); ++i) cout<<s[i]<<" ";
就像我们在向量的情况下所做的那样。我尝试了这个方法,但它显示“s[i]”中没有匹配的运算符。 - Sunnystd::set
没有提供那个功能。顺便说一下,使用迭代器的方式几乎相同:for(SetType::const_iterator it=s.begin();it!=s.end();++it) cout<<*it;
。如果您需要更多细节,您可能应该提出一个新问题。 - Georg Fritzsche