矜(bai)持(gei)的云拏 2023-03-21 14:14 采纳率: 80%
浏览 8
已结题

函数中二次使用一个vector容器的疑问

如图

img


我在一个函数中使用了vector,这个函数是需要重复使用的,那么我的这种写法会造成什么影响?
是不是在第二次调用此函数时vector的值不会改变了?
我需要怎么更改它以达到正常函数功能?

  • 写回答

1条回答 默认 最新

  • 关注
    vector<int> &count_chars(const string &s) {
      static vector<int> res(27, 0);
      for (int i = 0; i < s.size(); ++i)
        ++res[s[i] - 'a'];
      return res;
    }
    
    

    将 res vector 声明为 static 之后,它的生存周期将会持续到整个程序的运行期间,而不是每次函数调用之间重新创建和销毁。这意味着,如果你多次调用 count_chars 函数,并且需要访问之前调用所累积的计数器,则每次函数调用都将修改 res vector 中的值,而不是从零开始重新计数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月21日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)