gpt4 book ai didi

c++ - 以指针为键的 map 的 value_type

转载 作者:可可西里 更新时间:2023-11-01 15:10:56 26 4
gpt4 key购买 nike

据我所知,C++ 定义了 map<a,b>::value_type作为pair<const a,b>

如果我在 map 中使用指针类型作为键类型会发生什么,即是

std::map<const char*,int>::value_type::first_type = const char*

正如我从上面的定义中所期望的那样

std::map<const char*,int>::value_type::first_type = const char* const

这样会更合乎逻辑(因为否则我将被允许从映射迭代器更改键值)?

最佳答案

您的推理是正确的,value_type::first 将是 char const * const

Ttype * 时,认为 const Tconst type *,但事实并非如此。与宏不同,typedef 不是文本替换,也不是模板参数。当你执行 const T 时,如果 T 是一个 typedef 或模板参数,你将添加一个 const 到整体打字。

这就是为什么我喜欢在类型的右侧编写 const 的原因之一,因为这样可以减少混淆:T const *,添加一个额外的常量,获取 T const * const

关于c++ - 以指针为键的 map 的 value_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com