c++ MAP容器的问题

map<string,int>ma;stringword;while(cin>>word)++ma[word];map<string,int>::iteratorix=m... map<string, int> ma;
string word;
while(cin >> word)
++ma[word];
map<string,int>::iterator ix = ma.begin();
for(; ix != ma.end(); ++ix)
cout << (*ix).first << " " << ix->second << endl;

上述代码中, while(cin >> word)跳出这个循环是输入2次ctrl+z,我想知道这个是怎么得出来的结果。。。
还有c++中我发现都是左++,好像都不用右++....
展开
 我来答
byzxybd
2012-09-12 · TA获得超过455个赞
知道小有建树答主
回答量:731
采纳率:100%
帮助的人:427万
展开全部
比如输入
a
b
c
^Z^Z
a 1
b 1
c 1
缺省ma[word]会插入0
++后就都是1
是左还是右,在这个题中没有差别。所以这是由于习惯的原因。有差别的时候是赋值。这个要注意
比如 int i = 5; int k = i++;和k = ++i;结果是不同的,i的结果都是6,而k的结果一个是5,一个是6。
追问
输入2次ctrl+z 是怎么得出来的
追答
其实一次就可以,文件结尾是ctrl+z
cin输入ctrl+z的化返回0,循环退出
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式