使用迭代器打印表示点的std :: pair

时间:2014-01-06 20:45:29

标签: c++

我用C ++编程。我有一对代表点:

typedef pair<int,int> point;

我宣布一个点数组:

point P[];
set <point> mySet;

mySet包含P[]中存储的元素。

我想使用迭代器显示mySet的内容。

我将如何做到这一点?

3 个答案:

答案 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->firstit->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;
}