C++编程常见问题—error: passing 'const std::map]' discards qualifiers或pass-by-reference-to-const-map导致的“d
产生问题的场景:
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相关推荐
- Effective C++条款20解读:宁以pass by reference to const替换pass by value
我们先来看一个简单的程序: #include <iostream> using namespace std;class A { private:string name;string add ...
- 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 ...
- C++ STL编译报错:error: error passing 'const' as 'this' argument
用C++ STL(标准模板库)编写仿函数的时候,编译报错: error: passing 'const FindNameOrAddress' as 'this' argument of 'bool F ...
- error: passing ‘const xxx’ as ‘this’ argument discards qualifiers c++primer 5th文本查询程序一个错误请各位指教(已解决)
文件main.cc 文件main.cc #include <string> #include <iostream> #include <memory> #inclu ...
- Visual Basic编程常见问题及解答(3)
让您的文字框有 Undo / Redo 的功能 很多软件都有提供 Undo / Redo 的功能,Microsoft 的产品都可以提供多次 Undo 反悔,功能更强大! 在 VB 的程序中,我们也可以 ...
- Visual Basic编程常见问题及解答(2)
如何把小图片填满 MDIForm 成为背景图? 以下这个范例,要: 1.一个 MDIForm:不必设定任何属性. 2.一个 Form1:不一定是 MDIChild,最好 MDIChild 为 Fals ...
- C++ ERROR:error: passing 'XXX' as 'this' argument of 'XXX' discards qualifiers
遇到了如题目的这种错误: error: passing 'XXX' as 'this' argument of 'XXX' discards qualifiers 如何产生的? 我将一个const变量 ...
- Linux多线程、多进程、网络编程常见问题
Linux多进程.多线程.网络编程常见问题 入门 1.GCC的工作流程? 工作流程: 预处理.编译.汇编.链接 具体流程如下: 2.gcc常用的参数选项 3.Makefile介绍 3.1.Makefi ...
- python发行版是什么意思_Python(40)常见问题:编程常见问题
编程常见问题 目录 编程常见问题 如何创建 .pyc 文件? 如何找到当前模块名称? 如何让模块相互导入? __import__('x.y.z') 返回 ; 如何获取z? 当我编辑了导入过的模块并重新 ...
最新文章
- 电子商务网站比较常用的缓存策略架构
- 算法---字符串去重
- Linu解决oracle连接不稳定
- offsetwidth/offsetheight的区别
- 03 jquery easyui 之 easyLoader 加载器
- FileTracker:error FTK1011编译错误的原因和解决办法
- 人声处理_科唛课堂——人声的音频后期处理
- 中兴3G模块 MU301
- 肯德基champs各个字母代表什么_百度知道
- 第22篇 项目进度管理__计划评审技术__重点内容
- 桌面计算机恢复出厂设置,windows7电脑怎么恢复出厂设置
- 域名可以用多久_一个域名能用多少年
- 【阿里网盘】阿里网盘使用全攻略
- Python爬虫与信息提取(八)将新浪热搜排名导入数据库
- 手机内存卡应该叫外存卡
- 升级鸿蒙系统手机网络信号变差了,这是为什么?
- sbc,aac,aptx,ldac蓝牙编码简单介绍。
- python批量telnet检测IP地址的端口是否开放
- 揭密巴西Banrisul银行网站遭遇5小时劫持的原因
- 在51.com一岁生日庆祝会上的致辞
热门文章
- 利用Scala特征(trait)的堆叠操作特性进行切面编程
- 关于C#的Main(String[] args)参数输入问题
- ZOJ - 4114 Flipping Game(dp+组合数学)
- CodeForces - 1304D Shortest and Longest LIS(构造+贪心)
- HDU - 4705 Y(树形dp)
- uva1628 最优路径问题
- 剑指Offer-LeetCode刷题
- PTA第3章-2 查验身份证 (15 分)
- 手把手教你玩转SOCKET模型:重叠I/O篇
- 计算机网络 | 应用层 :HTTP协议详解