写在前面的话:
要测试此程序,需要加进count 函数的头文件 #include <algorithm>
转载自: http://www.54xue.com/w/17/n-30217.html
在学习C++的用法时,有这样一个简单的问题,却让我对cin.clear()重新认识了。
题目:
读取一系列int型数据,将其存入vector对象中,然后使用count()统计某个指定值出现的次数。
下面是我的程序:
int
main(void)
{
int num;
vector< int >ivec;
while( cin 》 num )
ivec.push_back(num);
cout 《 "Please input the number you want to count:"
cin 》 num;
cout 《 num 《 " appears " 《 count(ivec.begin(), ivec.end(), num) 《 " times!" 《 endl;
return 0;
}
运行结果:
细心的人,可能发现了修改后的运行结果与修改前的结果所占用的行数是不同的,修改前占用了4行,修改后的结果占用了5行。这就说明了问题,修改前的代码运行时,我并没有输入要查询的数据,所以没有按下回车键换行;而修改后的代码输入了要查询的数据,所以进行了换行。
注意: 如果我们将要查询的数据分配一个新的变量,结果还是一样的。为什么呢?其实,只要输入流中的内容没有改变,任何变量中存放的都是输入流中的内容。
这看似是一个很小的问题,但是如果我们不注意这样细小的问题,很有可能造成程序运行时错误。我自己是从这个很小的问题中,学习到了很多,希望你也是。
写在后面的话:(自)
您觉得这个会输出什么呢(对了 ,仍会输出最后一个数字:之所以不理解是因为没有弄清cin\cout 是输入、输出流,并不是同一个):
正确的用法是这样: