C ++ for循环中的逗号运算符

时间:2014-01-16 23:47:19

标签: c++ for-loop comma

我正在尝试使用逗号分隔for循环中的多个初始化,但我收到以下错误。

在for循环的第一部分中使用逗号是否合法?

error: too few template-parameter-lists
error: sEnd was not declared in this scope


#include <iostream>
#include <algorithm>
#include <vector>    

int main() {
  using namespace std;
  typedef vector<int> Vc;
  Vc v;
  for(Vc::iterator sIt = v.begin(), Vc::iterator sEnd = v.end();
      sIt != sEnd; ++sIt) {
    // do something
  }    
  return 0;
}

2 个答案:

答案 0 :(得分:6)

应该是:

                                  /* remove this  */
for(Vc::iterator sIt = v.begin(), /* Vc::iterator */ sEnd = v.end();
    sIt != sEnd; ++sIt) {
  // do something
}

变为:

for(Vc::iterator sIt = v.begin(), sEnd = v.end();
    sIt != sEnd; ++sIt) {
  // do something
}

此外,这不是逗号运算符的用法(逗号运算符只能在表达式中使用);这是一个简单的变量声明。

答案 1 :(得分:0)

允许使用逗号,尝试以逗号开头,而不是使用typename。