我用C ++编程。我有一对代表点:
typedef pair<int,int> point;
我宣布一个点数组:
point P[];
set <point> mySet;
mySet
包含P[]
中存储的元素。
我想使用迭代器显示mySet
的内容。
我将如何做到这一点?
答案 0 :(得分:0)
MySet包含存储在P []中的元素我要显示 使用迭代器的MySet的内容。我应该怎么做呢。
好吧,如果我们相信谷歌翻译,那么我会说:
for ( auto & point : MySet ) { /** show (* point ) **/ }
,或者
for ( auto itpoint= MySet.begin() ; ( itpoint != MySet.end() ) ; ++ itpoint )
{
/** show ( * itpoint ) **/
}
答案 1 :(得分:0)
要获得相应的迭代器,只需执行set<point>::interator it;
。然后,您可以使用成员begin()
和end()
,例如
for (it = mySet.begin(); it != mySet.end(); ++it)
{
/* code */
}
您可以使用it->first
和it->second
访问迭代器后面的元素。
使用C ++ 11,您还可以使用auto
/ foreach:
for (auto& elem : mySet)
{
/* code */
}
答案 2 :(得分:0)
在我看来,最简单的方法是使用基于范围的for语句:
for ( auto p : mySet )
{
std::cout << "( " << p.first << ", " << p.second << " )" << std::endl;
}