美文网首页
c++中的一些循环语法

c++中的一些循环语法

作者: codeflame | 来源:发表于2018-02-22 21:32 被阅读0次

for_each

for each (object var in collection_to_loop)在vs中使用可以,其他平台不确定。

for_each (InputIterator first, InputIterator last, Function fn)在c++std命名空间中,适用性广。
first、last为迭代器,fn为"函数",上例子:

void myfunction (int i) {  // function:
  std::cout << ' ' << i;
}

struct myclass {           // function object type:
  void operator() (int i) {std::cout << ' ' << i;}
} myobject;  //重载()运算符,因此能这样:myobject(100),像函数一样

int main () {
  std::vector<int> myvector= {1, 2, 3};
  for_each (myvector.begin(), myvector.end(), myfunction);
  for_each (myvector.begin(), myvector.end(), myobject);
  for_each (myvector.begin(), myvector.end(), 
  [](int i)  {std::cout<<' '<<i;}  //匿名函数
  );
  return 0;
}

上面3个一样效果

for

上正体,对于stl容器,如vector<int> v,效率:
for(int i=0;i<v.size();i++) 这个最慢,好点的话新建个变量记住v.size()
for(vector<int>::iterator i=v.begin(); i!=v.end(); i++)迭代器循环,速度快
for(int i : v)跟上面实际差不多

相关文章

网友评论

      本文标题:c++中的一些循环语法

      本文链接:https://www.haomeiwen.com/subject/auoztftx.html