首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不允许这个地图<int,auto>?

这个问答内容涉及到C++编程语言中的模板和数据类型的问题。在C++中,模板是一种泛型编程的工具,可以用于创建通用的数据结构和算法。而数据类型是变量或表达式的属性,用于确定其存储空间和操作方式。

在C++中,可以使用模板来创建具有不同数据类型的容器类,例如vector、map等。在这个问答中,提到了一个地图(map)容器,其键类型为int,值类型为auto。auto是C++11引入的关键字,用于自动推断变量的类型。

然而,不允许使用<int, auto>作为地图容器的类型。这是因为在C++中,模板的类型参数必须是明确的,不能使用auto来代替。auto关键字只能在变量声明时使用,用于让编译器自动推断变量的类型。

如果想要创建一个键类型为int,值类型为自动推断的地图容器,可以使用以下方式:

代码语言:cpp
复制
std::map<int, decltype(value)> myMap;

其中,value是一个已知的变量,编译器可以根据其类型推断出值类型。

总结起来,不允许使用<int, auto>作为地图容器的类型是因为C++模板要求类型参数必须是明确的,而auto关键字只能在变量声明时使用。

相关搜索:为什么rvalue int向量的元素的decltype(auto)的类型推导是int&?为什么我的代码不执行这个语句: int(n)?在C++中,如果"int a= 3;int* p= &a;",那么为什么不允许"const int* &pp = p“,而允许"const int* const &pp = p”呢?为什么我会得到这个错误?错误:'int‘和'int(int,int)’类型的操作数对于二进制'operator/‘无效为什么‘`copy of()’不允许这个XSL是流的("burst-mode")?为什么这个for循环的无符号int是无穷无尽的?Java:从char减去'0'得到一个int ...为什么这个工作?为什么在这个架构中' map‘函数不能推断地图数据类型?为什么卸载这个工具会将玩家重新定位到地图的中心?为什么Visual Studio中的编译器不允许将参数int N[a][b],int M[b][a]传递给函数?为什么这个字段分隔符regex不允许我提取所需的值?为什么这个好友函数不允许使用brace-init-list,而静态函数允许呢?C++为char分配一个int - 为什么这个没有至少一个警告?为什么这个switch case返回一个双精度值,即使它是一个int?既然已经在代码顶部声明了number=int(input()),为什么还要在这个while循环中编写它呢?为什么我在检查器的脚本顶部设置一个int变量的值为0,这个值是1呢?为什么这个KeY动态逻辑问题会被证明是正确的,将java int值增加2147483647到1应该是-2147483648?找不到参数为'(1,)‘的'viewpost’的反向。已尝试1个模式:['int:post\\.id$']。为什么我会得到这个错误?当我在第一个循环中使用'auto‘时,它工作得很好,但是使用'int’时,它给出了一个错误,为什么?在这个链表中,为什么不允许我再次运行并创建另一个节点,我的代码中的错误是什么?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 趣玩算法--OpenCV华容道AI自动解题

    微卡智享 数字华容道的路径规划算法是也是基于A星算法原理实现的,区别就是A星算法是允许斜线移动,在计算当前要规划的点时,需要计算周围8个邻近点,而数字华容道行动时不允许走斜线,所以只能计算上下左右四个直线方向的点...加入地图障碍、开户列表、关闭列表 定义了一个开启列表和一个关闭列表,其中开启列表中存放着还未计算的所有点,关闭列表中存放着已经计算过的点。...每次从开启列表中取出到终点体力最少的点,都存放到关闭列表中,还有找出这个点的上下左右可移动的点,当这几个点中超过地图范围或是在障碍点中,以及已经在关闭列表中时,就不做为可移动的点了,这样可以减少循环的计算量...DirectFirst = DirectFirst::Up; //初始化地图 void InitSites(vector> _sites); //获取到路径 vector...openList.empty()) { auto resPos = openList.front(); for (auto& pos : openList) if (pos

    96440

    C++变量的存储说明符和cv-限定符

    存储说明符 存储说明符有下面这些: auto register static extern mutable auto修饰符的变量时自动变量,如果变量没有任何修饰符,默认就是自动变量,其作用域在函数内部。...),要么用static声明来隐藏这个大全局global(此时是新的变量) static int one_file = 50;// 在函数外使用static声明,只在文件内各个函数可使用 void func...person me = {"Cloudox", 24}; strcpy(me.name, "Cloud");// 这是不允许的,因为结构体person的实例me是用const修饰的 me.age++;...为什么会发生变化呢?因为假设你指针指向某个硬件位置,其中包含来自串行端口的时间或信息,这就有可能硬件本身改变它,而不是你程序去改变它。 那为什么要告诉程序它可能变化呢?...因此volatile关键字实际上也就是告诉编译器,不要对这个变量做这种优化。

    62110

    chat集群聊天室项目 代码+讲解(二):业务模块

    文章目录 项目简单架构图 1.0版本:单服务器 2.0版本,横向扩充,负载均衡 3.0版本,调优 代码 讲解 为什么要设置单例 MsgHandler 的设计 业务中为什么不直接对接数据库?...我又想了一下,这个架构有问题,先留着吧,有兴趣的朋友可以看看哪里有问题。 代码 闲话不多说,直接上代码。 我精简化了一下,业务代码基本千篇一律的,没什么好看的。...msgid){ //日志记录 auto it = _msgHanderMap.find(msgid); if(it == _msgHanderMap.end()){...user.getpassword() == pwd) { if (user.getstate() == "online") { // 该用户已经登录,不允许重复登录...那为什么不在ChatServer里面放一个Chatservice chatservice_ 对象呢? 那为什么就非要加上这么一层耦合呢?

    80830

    Android 天气APP(二十四)地图天气(上)自动定位和地图点击定位

    然后就可以来显示地图了,以我的性格,那肯定是新建一个页面来做这个的。...//透明状态栏 StatusBarUtil.StatusBarLightMode(context);//状态栏黑色字体 } @Override public int...推荐一个图标网站,我APP上的图标基本都是在这个上面找的,真心不错。 iconfont 这个地图的图标也是在上面找的。可以看到右边已经有一个更多功能的按钮了,我在左边加一个地图的。...地图确实已经看到了,但是为什么是在北京呢?因为这是默认的初始位置,所以需要自己去定位到当前位置。...当然这个事件肯定不是常规的View.OnClickListener,而是百度地图已经封装好的点击方法。

    2K20

    SQL笔记(1)——MySQL创建数据库

    INT NOT NULL, -- 教师ID,外键,参考教师表中的ID字段 credit DOUBLE NOT NULL -- 课程学分,不允许为空 ); 这个命令是用来创建一个名为 course...具体来说,该表包含以下列: id:课程ID,类型为 INT,是主键列,并且使用 AUTO_INCREMENT 属性,表示自增长; name:课程名称,类型为 VARCHAR(50),不允许为空; teacher_id...:教师ID,类型为 INT不允许为空,是外键列,参考了教师表中的 ID 列; credit:课程学分,类型为 DOUBLE,不允许为空。...INT不允许为空,是外键列,参考了学生表中的 ID 列; course_id:课程ID,类型为 INT不允许为空,是外键列,参考了课程表中的 ID 列; score:学生得分,类型为 DOUBLE...(50) NOT NULL -- 教师职称,不允许为空 ); 在 MySQL 数据库中创建一个名为 teacher 的表,该表包含以下列: id:教师ID,类型为 INT,是主键列,并且使用 AUTO_INCREMENT

    3.1K20

    2024Mysql And Redis基础与进阶操作系列(3)作者——LJS

    约束(constraint)概述 1.1 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。...非空约束 2.1 作用 限定某个字段/某列的值不允许为空 2.2 关键字NOT NULL 2.3 特点 默认,所有的类型的值都可以是NULL,包括INT、FLOAT等数据类型 非空约束只能出现在表对象的列上...主键约束对应着表中的一列或者多列(复合主键) 如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。...主键约束对应着表中的一列或者多列(复合主键) 如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。...; //给这个字段增加自增约束 alter table 表名称 modify 字段名 数据类型; //去掉auto_increment相当于删除 alter table employee

    19310

    c++ primer2 变量和基本类型。

    使用extern关键字可以只表示声明而非定义,比如extern int j;就指标是声明j,在后面的代码中还可以定义int j=0;,这样都是正确的,特别的,任何进行了显式初始化的声明即成为定义,且函数内部不允许使用这样的...但是不允许用将普通的引用绑定到常量上:const int &r1=4; int &r2=r1*4; 这样是不合法的。...auto会忽略顶层const,底层会保留 int i=0, &r=i; auto a=r; //a是一个整数 const int ci=i; &cr=ci; auto b=ci;...auto e=&ci; // e是指向整数常量的指针,ci是一个常量,这个是一个底层cosnt,并不会被忽略。...//如果想要希望推断出来的auto类型是一个顶层cosnt,所以需要明确指出: cosnt auto f=ci; //推断出来的是cosnt intint 是从ci推断出来的,而cosnt是限定的

    53510

    Java总结之映射家族--Map概览

    所谓映射便是一一对应,map英语中是[地图]的意思,这也很好的反应了映射的概念。 即:地图上的某一点都会对应现实的某一点,说是映射可谓恰到好处。...如果你发现一个字典的索引有两个[apple],你肯定会认为这个字典有问题。或者一个地图上查询两个[合肥],恐怕你也不会相信这张地图是好的。...相关话题: 哈希碰撞相关问题:什么是哈希碰撞,如何降低哈希碰撞几率,哈希碰撞后的解决方案 HashMap底层实现问题:链表数组+红黑树数组,为什么要使用这样的数据结构 由此可以引出链表与数组的比较...的Node(链表)数组, 2.当hash冲突时,该元素会插入到与其冲突的链表尾 3.当链表长度为8并且数组长度大于40时,链表转为红黑树 4.当树元素小于等于6时会解除树化,分割成链表 为什么链表要化为红黑树...实现 扩容方式 null键值 父类 HashMap 否 数组+单链表+红黑树 oldCap * 2 允许 AbstractMap Hashtable 是 数组 + 链表 oldCap * 2 + 1 不允许

    64640

    const 使用总结

    const关键字是用于定义一个不该被改变的对象,它的作用是告诉编译器和其他程序员不允许修改这个对象的值或者状态。...// 错误,会丢失*cp的const限制使用auto自动类型推导时,auto会忽略掉顶层的const,而底层的const则会保留下来:int i = 0;const int ci = i;const int...&cr = ci;auto a = ci;// a的类型是intauto b = cr;// b的类型是int,只是拷贝cr引用对象的值auto c = &i;// c的类型是int*auto d =...&ci;// d的类型是const int*,底层const不能忽略const auto e = cr;// 当你希望auto推导出来的类型是const时,明确指出当auto和引用一起使用时,初始值中的顶层...const属性会被保留,因为引用是绑定这个对象的,相当于是这个对象的别名,所以这个对象的const属性应该要保留:int i = 0;const int ci = 512;auto &r1 = i;//

    11810
    领券