学好C++第一篇

来源:互联网 发布:人工智能虚拟系统 编辑:程序博客网 时间:2024/06/06 10:04

   学好C++,前提必需看好书,好书写的就是这么通俗易懂,这么流利。

   今天以一个小程序开始C++的学习。

   题目:统计每个单词在输入中出现的次数。(此题的C语言解法请看之前指针的文章)

   先看代码:

  

#include <iostream>#include <string>#include <vector>using namespace std;struct Pair{string name;double val;};vector<Pair> pairs;//维护Pair的一个集合://检索s,如果找到就返回其值,否则做一个新Pari并返回默认值0double& value(const string& s){for(int i=0;i<pairs.size();i++)if(s==pairs[i].name) return pairs[i].val;Pair p={s,0};pairs.push_back(p);//将Pair加到最后return pairs[pairs.size()-1].val;}//统计每个单词在输入中出现的次数int main(){string buf;int f;while(cin>>buf)value(buf)++;for(vector<Pair>::const_iterator p=pairs.begin();p!=pairs.end();++p)cout<<p->name<<": "<<p->val<<'\n';return 0;}

    

   这个题目要注意以下几个问题:

   1.cin>>buf, C++的输入以空白字符(如制表符换行符)作为结束一次输入。

   2.const sting& s常量引用,s就是buf,const表示不能改变。

   3.函数返回一个对象的引用,不是值,只有返回这个引用才可以对出现的次数加1。

   4.vector的用法,迭代器,这些都很简单,熟悉一下。

   5.Pair最简单关联数组,等着慢慢之后学习map的用法。

   忠告一下:

   1.尽量使用0而不是NULL

   2.尽量使用vector和string,不要使用C的数组和char数组。

   3.尽量少用普通的引用参数来改变实参。最好用指针和函数返回值。

   4.避免void*和避免指针的非平凡的操作。

   今后正式开始C++的学习路程,加油吧。。


原创粉丝点击