首页 > 其他分享 >一个引用没效果错误示范

一个引用没效果错误示范

时间:2023-08-25 19:12:20浏览次数:41  
标签:std map 错误 auto 示范 instance 引用 GetData

#include <iostream>
#include <unordered_map>
using namespace std;
class TestClass
{
public:
    std::unordered_map<int, int>& GetData() { return m_data; }
private:
    std::unordered_map<int, int> m_data;
};

int main()
{
    TestClass instance;
    {
        auto map = instance.GetData();  //引用错误示范, 这边的等号左边map是对右边的复制, 后面添加数据在临时对象上面操作的
        //auto& map = instance.GetData(); //正确用法
        map.insert(std::make_pair(1, 1));
    }
    {
        auto map = instance.GetData();
        int size = map.size();
        cout << "map's size is :" << size << endl; //输出:map's size is :0
    }
    system("pause");
    return 0;
}

 

标签:std,map,错误,auto,示范,instance,引用,GetData
From: https://www.cnblogs.com/barrysgy/p/17657762.html

相关文章

  • 引用数据类型的坑
    Integer2!= Integer2巨坑 最近遇到一个奇怪的问题,存到user中的某个key的数据类型变了下面这段代码,本来是图方便获取了map,然后将list转成string,然后put回到这个map,然后使用这个map却不成想,类型也跟着变了。 这就是引用类型使用的风险 importjava.util.ArrayLis......
  • IDEA Git恢复DropCommit已经删除的commit提交 撤销Git错误删除commit 回退历史版本
    原因由于在IDEA上commit时写错了commit信息,想重新提交,就在提交记录上右键->DropCommit删除了,然后就发现代码也恢复到上次commit时的情况,这次新增的代码全没有了恢复对git其他操作不熟悉,不过git应该记录了所有版本控制的历史信息,应该能恢复已经删除的某个版本的commit代码1......
  • phpcmsv9更换域名后和空间后登陆后台提示验证码错误如何解决
    修改 caches\configs\system.php 的//网站路径 'web_path' => '/apppath/',和'js_path' => 'http://localhost/apppath/statics/js/', //CDN JS'css_path' => 'http://localhost/apppath/statics/css/', //CD......
  • 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC——官方的运行配置文件中
    官方的HPC运行配置文件:#!/usr/bin/envbashecho-----printenvvars-----if["${CCS_ALLOC_FILE}"!=""];thenecho""ls-la${CCS_ALLOC_FILE}echo------cat${CCS_ALLOC_FILE}cat${CCS_ALLOC_FILE}fiexport......
  • 解决访问 Amazon S3 对象时遇到的“访问被拒绝”错误
    作为AmazonS3的用户,在尝试访问S3存储桶中的对象时,您可能会遇到“访问被拒绝”错误。这些错误表示请求缺少执行所请求操作的有效凭证或权限策略。在本博文中,我将介绍各种故障排除步骤和配置检查,以解决访问S3对象时遇到的“访问被拒绝”错误。亚马逊云科技开发者社......
  • 解决Failed to load module canberra-gtk-module错误
    在Ubuntu环境里,通过./triangulation1.png2.png命令运行高翔的ch7的triangulation程序时报错:Gtk-Message:09:10:26.571:Failedtoloadmodule"canberra-gtk-module"查看一下模块位置:locatelibcanberra-gtk-module/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanb......
  • 前端项目报EISDIR: illegal operation on a directory, read这个错误
    背景:我用webstorm开发前端页面时,项目用Vue3来开发,出现如下报错。原因:这个报错是由于代码中引入的一些组件或者模块路径不正确导致的,在vue2中,引入组件是下面这样写的:importHomefrom"@/views/Home";可是在vue3中,后面的/index.vue不能省略,在webstorm快捷键引入组件是不带后......
  • golang init函数、defer函数、匿名函数、错误处理
    1.init每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前被调用,当有全局变量跟main函数init函数同时出现的时候执行的顺序是全局函数==》init函数==》main函数packagemainimport"fmt"functest()string{ r......
  • mysql insert出现主键冲突错误的解决方法
    mysqlinsert出现主键冲突错误的解决方法insert时防止出现主键冲突错误的方法在mysql中插入数据的时候常常因为主键存在而冲突报错,下面有两个解决方法:1在insert语句中添加ignore关键字insertignoreintotable(id,name)values('1','username');这是如果id主键已经存......
  • C++内联函数、引用、强制类型转换
    三、内联函数inline1、普通函数普通函数会被编译成二进制指令存储在代码段中,调用语句会生成一条跳转指令,当程序运行到调用语句时,会跳转该函数在代码段中对应的位置执行,执行结束会返回2、什么是内联函数内联函数也会被翻译成二进制指令,但调用语句不会生成跳转指令,而是直接把内......