加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在c中的循环中创建新变量时更好

发布时间:2020-12-16 10:16:52 所属栏目:百科 来源:网络整理
导读:C在循环中使用std :: map的最佳方法是什么? 动态分配 分配堆栈 码: for(int i=0;i3;i++){ std::mapint,int* m = new std::mapint,int; //or ... std::mapint,int m;} 解决方法 除非你真的需要它,否则避免使用new,即变量/结构的寿命与任何调用范围无关. (如
C在循环中使用std :: map的最佳方法是什么?

>动态分配
>分配堆栈

码:

for(int i=0;i<3;i++)
{
  std::map<int,int>* m = new std::map<int,int>;
  //or ...
  std::map<int,int> m;

}

解决方法

除非你真的需要它,否则避免使用new,即变量/结构的寿命与任何调用范围无关. (如果它“属于”调用函数,则按值返回.)

这显然不是这种情况.第二个,最好的例子叫做局部变量.

我会在两者之间做出选择

for(int i=0;i<3;i++)
{
  std::map<int,int> m;
  …
}

std::map<int,int> m;
for(int i=0;i<3;i++)
{
  …
  m.clear();
}

当容器是std :: vector时,后者可以通过重用分配的内存来执行得更好.与地图不同的是风格.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读