产生问题的场景:

int func(const map<int, string> &aMap)  {
         string value = amap[0];  }

或者

int  Test::func()const

{

string value = amap[0];                 //amap是Test类的成员函数.

}

用g++编译上面的代码,会报……discards qualifiers。
       这里是原因。

简单来说,map的[]运算符会在索引项不存在的时候自动创建一个对象,有可能会改变map本身,所以不能够用在一个const map上。

解决办法有两个:

方法1、不要将形参声明为const
                  方法2、用find代替[]

不过第二中方法存在风险,因为end()->second是合法的,于是就会产生传说中的null引用。

C++编程常见问题—error: passing 'const std::map]' discards qualifiers或pass-by-reference-to-const-map导致的“d相关推荐

  1. Effective C++条款20解读:宁以pass by reference to const替换pass by value

    我们先来看一个简单的程序: #include <iostream> using namespace std;class A { private:string name;string add ...

  2. C++编译出现binding ‘const string {aka const std::__cxx11::basic_string<char>}’ to reference of type ‘std

    编译异常如下: 解决办法: 我的函数是这样的 string &larger(const string &s1, const string &s2){return s1.size ...

  3. C++ STL编译报错:error: error passing 'const' as 'this' argument

    用C++ STL(标准模板库)编写仿函数的时候,编译报错: error: passing 'const FindNameOrAddress' as 'this' argument of 'bool F ...

  4. error: passing ‘const xxx’ as ‘this’ argument discards qualifiers c++primer 5th文本查询程序一个错误请各位指教(已解决)

    文件main.cc 文件main.cc #include <string> #include <iostream> #include <memory> #inclu ...

  5. Visual Basic编程常见问题及解答(3)

    让您的文字框有 Undo / Redo 的功能 很多软件都有提供 Undo / Redo 的功能,Microsoft 的产品都可以提供多次 Undo 反悔,功能更强大! 在 VB 的程序中,我们也可以 ...

  6. Visual Basic编程常见问题及解答(2)

    如何把小图片填满 MDIForm 成为背景图? 以下这个范例,要: 1.一个 MDIForm:不必设定任何属性. 2.一个 Form1:不一定是 MDIChild,最好 MDIChild 为 Fals ...

  7. C++ ERROR:error: passing 'XXX' as 'this' argument of 'XXX' discards qualifiers

    遇到了如题目的这种错误: error: passing 'XXX' as 'this' argument of 'XXX' discards qualifiers 如何产生的? 我将一个const变量 ...

  8. Linux多线程、多进程、网络编程常见问题

    Linux多进程.多线程.网络编程常见问题 入门 1.GCC的工作流程? 工作流程: 预处理.编译.汇编.链接 具体流程如下: 2.gcc常用的参数选项 3.Makefile介绍 3.1.Makefi ...

  9. python发行版是什么意思_Python(40)常见问题:编程常见问题

    编程常见问题 目录 编程常见问题 如何创建 .pyc 文件? 如何找到当前模块名称? 如何让模块相互导入? __import__('x.y.z') 返回 ; 如何获取z? 当我编辑了导入过的模块并重新 ...

最新文章

  1. 电子商务网站比较常用的缓存策略架构
  2. 算法---字符串去重
  3. Linu解决oracle连接不稳定
  4. offsetwidth/offsetheight的区别
  5. 03 jquery easyui 之 easyLoader 加载器
  6. FileTracker:error FTK1011编译错误的原因和解决办法
  7. 人声处理_科唛课堂——人声的音频后期处理
  8. 中兴3G模块 MU301
  9. 肯德基champs各个字母代表什么_百度知道
  10. 第22篇 项目进度管理__计划评审技术__重点内容
  11. 桌面计算机恢复出厂设置,windows7电脑怎么恢复出厂设置
  12. 域名可以用多久_一个域名能用多少年
  13. 【阿里网盘】阿里网盘使用全攻略
  14. Python爬虫与信息提取(八)将新浪热搜排名导入数据库
  15. 手机内存卡应该叫外存卡
  16. 升级鸿蒙系统手机网络信号变差了,这是为什么?
  17. sbc,aac,aptx,ldac蓝牙编码简单介绍。
  18. python批量telnet检测IP地址的端口是否开放
  19. 揭密巴西Banrisul银行网站遭遇5小时劫持的原因
  20. 在51.com一岁生日庆祝会上的致辞

热门文章

  1. 利用Scala特征(trait)的堆叠操作特性进行切面编程
  2. 关于C#的Main(String[] args)参数输入问题
  3. ZOJ - 4114 Flipping Game(dp+组合数学)
  4. CodeForces - 1304D Shortest and Longest LIS(构造+贪心)
  5. HDU - 4705 Y(树形dp)
  6. uva1628 最优路径问题
  7. 剑指Offer-LeetCode刷题
  8. PTA第3章-2 查验身份证 (15 分)
  9. 手把手教你玩转SOCKET模型:重叠I/O篇
  10. 计算机网络 | 应用层 :HTTP协议详解