社区
C++ 语言
帖子详情
关于map容器里的count操作
LAST_MAN
2011-11-15 08:36:31
map<string,int>word_count;
string word;
while(cin>>word)
++word_count[word];
以上这段代码是用来记录每个单词出现的次数,比如我输入了2次hello ,那么hello的值应该就是2.
但是书上又说如果这么写:m.count(k)是返回m中k出现的次数,k的值只能为1或0.
但是我hello的值明明是2,但是为什么书上又说只能出现1或0??
是不是我某些地方理解错了?
...全文
464
8
打赏
收藏
关于map容器里的count操作
mapword_count; string word; while(cin>>word) ++word_count[word]; 以上这段代码是用来记录每个单词出现的次数,比如我输入了2次hello ,那么hello的值应该就是2. 但是书上又说如果这么写:m.count(k)是返回m中k出现的次数,k的值只能为1或0. 但是我hello的值明明是2,但是为什么书上又说只能出现1或0?? 是不是我某些地方理解错了?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
a707000646
2011-11-15
打赏
举报
回复
书本里面的意思是用count返回是否存在该值
这样是为了避免 如果说你想查test这个单词出现的次数
如果你直接判断word_count["test"]这样会直接在map中插入了test
但是实际上呢
我们如果没有输入test就不插入map,所以才用count,至于count
楼上的回答够详细了
这里是避免当"test"不存在时,判断的时候插入map
dic_008
2011-11-15
打赏
举报
回复
m.count(k)是返回m中k出现的次数,没错,但是要是用它来检测某键是否存在,若不存在返回0,存在那就是返回非0,他只不过把非0用1来代替证明这个键存在。 如果前面没有++word_count[word];之类的操作那么只会返回1。
dongfangmuge
2011-11-15
打赏
举报
回复
[Quote=引用 3 楼 last_man 的回复:]
引用 1 楼 taodm 的回复:
哪本书?先找找勘误表。
C++PRIMER
书上说,对于MAP对象,count成员的返回值只能是0或1.map容器只允许一个键对应一个实例
[/Quote]
count是计算该元素出现的次数,当然只能是0或者1了,因为map不允许存在同样key值的元素,如果需要某单词出现的次数,可以直接输出word_count[word]就行了;word_count[word]是value,而不是count函数的返回值。
LAST_MAN
2011-11-15
打赏
举报
回复
[Quote=引用 4 楼 last_man 的回复:]
引用 2 楼 dizuo 的回复:
只能是0或者1的是布尔变量。
word_count[word]非零可以当成是1,布尔中的真。
那如果我需要输出某单词出现的次数,那应该怎么办?
[/Quote]
用word_count->second可以输出出现的次数,但是用count就不能输出了?那erase函数返回的也是0或1,我想知道删除了元素个数,应该怎么办?
LAST_MAN
2011-11-15
打赏
举报
回复
[Quote=引用 2 楼 dizuo 的回复:]
只能是0或者1的是布尔变量。
word_count[word]非零可以当成是1,布尔中的真。
[/Quote]
那如果我需要输出某单词出现的次数,那应该怎么办?
LAST_MAN
2011-11-15
打赏
举报
回复
[Quote=引用 1 楼 taodm 的回复:]
哪本书?先找找勘误表。
[/Quote]
C++PRIMER
书上说,对于MAP对象,count成员的返回值只能是0或1.map容器只允许一个键对应一个实例
ryfdizuo
2011-11-15
打赏
举报
回复
只能是0或者1的是布尔变量。
word_count[word]非零可以当成是1,布尔中的真。
taodm
2011-11-15
打赏
举报
回复
哪本书?先找找勘误表。
c语言中
count
函数,C ++中的
map
count
()函数
在本文中,我们将讨论C ++ STL中
map
::empty()函数的工作,语法和示例。什么是C ++ STL中的
Map
?...什么是
map
::
count
()?
map
::
count
()是头文件下的函数。此函数对具有特定键的元素进行计数,如果包含键的元素存...
C++
map
中的
count
()方法
map
和set两种
容器
的底层结构都是红黑树,所以
容器
中不会出现相同的元素,因此
count
()的结果只能为0和1,可以以此来判断键值元素是否存在(当然也可以使用find()方法判断键值是否存在)。 拿
map
<key,value>举例,...
C++ 学习之
Map
容器
在上面的示例中,展示了如何使用find函数在
Map
容器
中查找特定键对应的值,并输出该值。示例中,展示了如何使用insert函数和下标运算符向
Map
容器
中插入元素,以及如何使用erase函数删除指定键的元素。在C++的
Map
容器
...
C++
map
count
()用法及代码示例
返回值:该函数返回键K在
Map
容器
中的出现次数。如果 key 存在于
容器
中,则返回1,因为映射仅包含唯一 key。如果键在
Map
容器
中不存在,则返回0。是C++ STL中的内置函数,如果在映射
容器
中存在带有键K的元素,则该函数...
STL常用
容器
——
map
容器
的使用
map
容器
是存储pair 类型键值对( pair 类模板创建的 pair 对象)的关联式
容器
。pair 键值对(pair):键值对中第一个元素为key(键),起查找作用,第二个元素为value(值)。使用
map
容器
存储的各个键值对,键的值既不...
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章