首页 > 其他分享 >bug——多重定义

bug——多重定义

时间:2024-07-06 22:58:35浏览次数:26  
标签:多重 fibData 定义 int cin return 全局变量 data bug

bug——多重定义

你的问题是在C++代码中遇到了"reference to 'data' is ambiguous"的错误。这个错误通常发生在你尝试引用一个具有多重定义的变量时。

在你的代码中,你定义了一个全局变量data,同时,C++标准库中也有一个名为data的函数模板。当你在fib函数中使用data时,编译器无法确定你是想引用全局变量data还是std::data,因此它给出了一个模糊的错误。

为了解决这个问题,你可以改变全局变量data的名称,或者在调用时明确指定你要引用的是全局变量。

解决方案一:更改全局变量名称

cpp

#include <iostream> 

using namespace std; 

 

int mod=1e9+7; 

int fibData[10000]; // 更改名称 

 

int fib(int n){ 

  if(n==1||n==2){fibData[n]=1;return fibData[n];} 

  if(fibData[n]!=0)return fibData[n]; 

  fibData[n]=fibData[n-1]+fibData[n-2]; 

  return fibData[n]; 

 

int main() { 

  int t; 

  cin>>t; 

  for(int i=0;i<t;i++){ 

    int n; 

    cin>>n; 

    cout<<fib[n]; 

  } 

  return 0; 

}

解决方案二:在调用时明确指定你要引用的是全局变量

cpp

#include <iostream> 

using namespace std; 

 

int mod=1e9+7; 

int data[10000]; 

 

int fib(int n){ 

  if(n==1||n==2){::data[n]=1;return ::data[n];} // 在前面加上 '::' 明确指定你要引用的是全局变量 

  if(::data[n]!=0)return ::data[n]; 

  ::data[n]=::data[n-1]+::data[n-2]; 

  return ::data[n]; 

 

int main() { 

  int t; 

  cin>>t; 

  for(int i=0;i<t;i++){ 

    int n; 

    cin>>n; 

    cout<<fib[n]; 

  } 

  return 0; 

}

标签:多重,fibData,定义,int,cin,return,全局变量,data,bug
From: https://blog.csdn.net/2302_79123319/article/details/140236954

相关文章

  • 微信小程序开发基础知识5----自定义组件
    一、组件的创建与引用1、创建组件①在项目的根目录中,鼠标右键,创建components->test文件夹②)在新建的components->test文件夹上,鼠标右键,点击“新建Component'③键入组件的名称之后回车,会自动生成组件对应的4个文件,后名分别为.js,json,.wxml和.wxss2、引用组件组......
  • GCC8 编译优化 BUG 导致的内存泄漏
    1.背景1.1.接手老系统最近我们又接手了一套老系统,老系统的迭代效率和稳定性较差,我们打算做重构改造,但重构周期较长,在改造完成之前还有大量的需求迭代。因此我们打算先从稳定性和迭代效率出发做一些微小的升级,其中一项效率提升便是升级编译工具和GCC版本。老系统使用Autot......
  • C++初学者指南-3.自定义类型(第一部分)-异常
    C++初学者指南-3.自定义类型(第一部分)-异常文章目录C++初学者指南-3.自定义类型(第一部分)-异常简介什么是异常?第一个示例用途:报告违反规则的行为异常的替代方案标准库异常处理问题和保证资源泄露使用RAII避免内存泄漏!析构函数:不要让异常逃脱!异常保证无抛出异常保......
  • Windows防火墙 日志 自定义 以记录被丢弃的数据包和成功的连接日志。以下是一个示例.r
     配置注册表,以记录被丢弃的数据包和成功的连接日志 WindowsRegistryEditorVersion5.00;WindowsDefender防火墙日志记录设置[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy];以下是针对不同配置文件的设置,例如......
  • 维度建模四部曲:选择业务处理过程、定义粒度、选择维度、确定事实
    维度建模是设计数据仓库的一种常用方法,它通过将业务数据组织成维度表和事实表的结构,使得数据分析和查询更加直观和高效。在进行维度建模时,有一个经典的四部曲:选择业务处理过程、定义粒度、选择维度、确定事实。本文将对这四个步骤进行详细介绍。选择业务处理过程:在维度建模......
  • Spring Boot 自定义 starter 启动器
    前言:SpringBoot为我们提供了自动配置的功能,我们可以像使用插件一样,对各个组件自由组合装配,只需引入定义好的starter即可,有点类似于Java的SPI机制,SPI机制是为了解决项目与项目之间的解耦,而SpringBootstarter方式实现了模块化的解耦,前文我们从SpringBooot源......
  • 每周一个技能点:责任链模式实现数据多重校验
    定义:责任链模式(ChainofResponsibility):使多个对象都有机会处理同一请求,从而避免请求的发送者和接受者之间的耦合关系,每个对象都是一个处理节点,将这些对象连成一条链,并沿着这条链传递该请求。原始概念中,是直到链上的某个接收对象能够处理它为止。实际使用中,链上的所有对象......
  • C++开发调试工具:GDB调试,windebug调试,adb调试
    我们在C++开发过程中时常避免不了要调试追踪,一下介绍最主流的三种调试工具:一.GDB调试1.coredump文件:coredump文件是程序异常时系统产生的错误日志文件,即核心转储文件;编译一个debug程序,必须是debug版本,否则无法产生coredump文件;编译命令:g++test.cpp-omytest-g,必须要......
  • 工作典型bug记录
    工作记录金bug:【job功能缺陷】分页捞数索引及数据状态不准确,造成job空跑问题:缺陷类型:job类型缺陷发现方式:大数据量时候分页功能测试时,发现分页阀值1000后面的数据无法被job执行。排查方法:查询日志:a.发现从第二次起,一直捞取前面执行过的1000条数据。b.查看开发代码:发现捞取......
  • gunicorn 自定义日志
    gunicorn自定义日志默认情况下,如果只通过errorlog和accesslog参数指定gunicorn的日志文件,日志文件会一直增长,最后导致硬盘占用过大和检查日志不方便。因此需要自定义配置滚动日志保存。配置文件直接在gunicorn的配置文件gunicorn_conf.py中添加logconfig_dict配置项imp......