-1

我有以下向量:

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

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

4

2 回答 2

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一些仿函数。

于 2012-08-10T18:25:07.833 回答
2
  1. 创建迭代器,指向向量的第一个元素(语法Container::iterator iter = myContainer.begin():)
  2. for-loop 中,遍历所有元素(iteratorhas operator++;结束条件是 - 检查迭代器是否已到达end容器的,例如iter != myContainer.end():)
  3. 迭代器就像指针,要访问它的成员,请使用operator->.
  4. std::pair就像一个具有两个字段的结构 -firstsecond,因此您可以打印向量的元素,例如:iter->firstiter->second
于 2012-08-10T18:26:25.697 回答