使用std :: vector <std :: pair <=“”>&gt; </std :: pair>浏览向量

时间:2012-08-10 18:23:16

标签: c++ oop vector iterator std-pair

我有以下矢量:

std::vector< std::pair<std::string,bool > > myvec;

如何使用迭代器浏览和打印矢量元素?

2 个答案:

答案 0 :(得分:7)

你有什么问题?

typedef std::vector<std::pair<std::string, bool> > vector_type;
for (vector_type::const_iterator pos = myvec.begin();
     pos != myvec.end(); ++pos)
{
   std::cout << pos->first << " " << pos->second << std::endl;
}

或者您可以将std::for_each与某个仿函数一起使用。

答案 1 :(得分:2)

  1. 创建迭代器,指向向量的第一个元素(语法:Container::iterator iter = myContainer.begin()
  2. for - 循环中,遍历所有元素(iteratoroperator++;结束条件是 - 检查迭代器是否已到达容器的end ,如:iter != myContainer.end()
  3. 迭代器就像指针一样,为了触​​及它的成员,使用operator->
  4. std::pair就像一个包含两个字段的结构 - firstsecond,因此您可以打印一个矢量元素,如:iter->firstiter->second。< / LI>