| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 152 人关注过本帖
标题:map映射容器的insert函数的参数不对啊~~~~~~~~~~
只看楼主 收藏
okokpypy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-6-1
结帖率:33.33%
  已结贴   问题点数:10  回复次数:6   
map映射容器的insert函数的参数不对啊~~~~~~~~~~
pair<iterator, bool> insert (const pair<KEY_TYPE, VALUE_TYPE> & val);
//pair<KEY_TYPE, VALUE_TYPE>类型是一个具体化为KEY_TYPE型 和 VALUE_TYPE型的pair类对象,
VALUE_TYPE型是pair<const Key, Type>的类型别名,是具体化为const Key型 和 Type型的pair类对象
为什么实际使用是后者?即insert(VALUE_TYPE & val);
2017-08-06 21:42
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:203
帖 子:4943
专家分:27082
注 册:2011-1-18
  得分:10 
听不懂你在说什么,以下代码是从C++标准文档中摘出来的

template< class Key, class T, class Compare=less<Key>, class Allocator=allocator<pair<const Key,T>> >
class map
{
public:
    …………
    using value_type = pair<const Key, T>;
    …………
    pair<iterator, bool> insert(const value_type& x);
    …………
};
2017-08-07 08:24
okokpypy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-6-1
  得分:0 
回复 2楼 rjsp
insert的语法格式不是这个?
pair<iterator, bool> insert (const pair<KEY_TYPE, VALUE_TYPE> & val);
2017-08-07 09:27
okokpypy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-6-1
  得分:0 
回复 3楼 okokpypy
按照你给出的代码应该是这个:
pair<iterator, bool> insert (const pair<const key, T> & val);
那么第一个具体化参数const key就等于KEY_TYPE,
第二个具体化参数T就等于VALUE_TYPE,但是T可以是任意类型,而VALUE_TYPE只能是pair类的对象,不可能一样啊
2017-08-07 09:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:203
帖 子:4943
专家分:27082
注 册:2011-1-18
  得分:0 
以下是引用okokpypy在2017-8-7 09:39:56的发言:

第二个具体化参数T就等于VALUE_TYPE,但是T可以是任意类型,而VALUE_TYPE只能是pair类的对象,不可能一样啊

不知道你在说什么,VALUE_TYPE 哪里来的,是个什么东西?
既然在说C++,那就得以ISO的“C++标准文档”为依据。
2017-08-07 11:45
okokpypy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-6-1
  得分:0 
回复 5楼 rjsp
总之,按照c++标准文档,insert语法是:
pair<iterator, bool> insert (const pair<const key, T> & val);
对吧?
1楼的语法是书上写的,估计是错的~
2017-08-07 12:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:203
帖 子:4943
专家分:27082
注 册:2011-1-18
  得分:0 
按照c++标准文档,insert语法是:
pair<iterator, bool> insert (const pair<const key, T>& val);
对吧?
------ 对
2017-08-07 16:09









关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055779 second(s), 8 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved