1

「double」のinit-expressionを使用してforループを作成する方法はありますか?

vector<int> v;
//...vector filling...
for (vector<int>::iterator i = v.begin() AND vector<int>::iterator e = v.end(); i != e; ++i){ ...}
4

3 に答える 3

6

確かに、コンマを使用してください:

vector<int> v;

// ...
for (vector<int>::iterator i = v.begin(), e = v.end(); i != e; ++i)
{

}

これが「機能する」理由は、ステートメントの定義方法によるものです(わかりやすくするためforに、暗黙の後にセミコロンを追加しました)。for-init-statement

for ( expression -statementまたはsimple- declarationconditionopt ; expression opt ; )

単純な宣言は、型の後にコンマで区切られた宣言子のリスト(識別子、ポインター/参照/配列表記、およびオプションの初期化子)が続くものです。

于 2012-05-08T15:04:46.020 に答える
5

はいあります:

#include <iostream>
int main() {
  for (int i=0, j=10; i<10; ++i, ++j) {
    std::cout << i << ", " << j << "\n";
  }
}

ただし、コンマ演算子を使用する必要があるため、初期化する変数のタイプは同じである必要があります。

于 2012-05-08T15:07:45.457 に答える
2

カンマを使用します。

for (vector<int> i = v.begin(), e = v.end(); i != e; ++i){ ...}
于 2012-05-08T15:04:58.893 に答える