加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么不允许这张地图?

发布时间:2020-12-16 06:48:48 所属栏目:百科 来源:网络整理
导读:我试图在C中实现异构映射.我知道之前已经讨论过,但我想知道为什么不允许以下内容: mapint,auto myMap; 无论如何,我可以简单地插入地图而不必诉诸(void *)指针? 我在想最终能够做到这样的事情: vectorint v;myMap.insert(make_pairint,int(1,12334));myMap
我试图在C中实现异构映射.我知道之前已经讨论过,但我想知道为什么不允许以下内容:

map<int,auto> myMap;

无论如何,我可以简单地插入地图而不必诉诸(void *)指针?

我在想最终能够做到这样的事情:

vector<int> v;
myMap.insert(make_pair<int,int>(1,12334));
myMap.insert(make_pair<int,vector<int>)(2,v));

这可能吗?或者我的努力是徒劳的?

谢谢

解决方法

auto并不意味着“这可以是任何类型”.它是一个特殊的关键字,只能用于声明变量,其含义是“此变量的类型与用于初始化它的表达式的类型相同”. auto变量的类型与任何其他声明变量的类型一样不可更改;唯一的区别是你不必拼出该类型的名称.由于auto不是一个类型,而只是用于简化声明的语法糖,因此它不能用作模板参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读