所在的位置: C++ >> C++优势 >> C高效编程C26817rangef

C高效编程C26817rangef

北京正规的白癜风医院 http://www.t52mall.com/

1、警告原因:

C++11中range-for形式的for循环,最好用引用,否则会调用拷贝构造函数,占用额外的资源。

2、出现情况:

看如下代码:

  std::vectorCPointDpts{{,},{,},{00,},{,}};

  for(autopt:pts){

    //

  }

编译器(VC)提示信息:

、原因分析:

我们去微软官方学习网站查找这个警告的说明:

C:range-for循环中可能存在成本高昂的name变量副本。请考虑使其成为常量引用(es.71)。

如果range-for循环变量未显式标记为引用,则它会获取循环访问的每个元素的副本:

#includevector

classMyComplexType{

intnative_array[0];

};

voidexpensive_function(std::vectorMyComplexType


转载请注明:http://www.aierlanlan.com/grrz/6072.html

  • 上一篇文章:
  •   
  • 下一篇文章: