-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で、すべての要素を反復処理します(has iterator;operator++終了条件は-イテレータがendコンテナのに到達したかどうかを確認しiter != myContainer.end()ます。
  3. イテレータはポインタのようなもので、そのメンバーに到達するには、を使用しますoperator->
  4. std::pairは2つのフィールドを持つ構造体のようなものです-firstと。したがって、:と。secondのようなベクトルの要素を出力できます。iter->firstiter->second
于 2012-08-10T18:26:25.697 に答える