所在的位置: C++ >> C++前景 >> C高效编程C26817rangef

C高效编程C26817rangef

白癜风哪里能治最好 https://m.39.net/pf/a_7534559.html

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/cyrz/7760.html