今天在做练习的时候发现了一个经常遇到的问题,边界值的处理。
我将一个文件中的英语文章读入了一个文件流里,然后把他保存到了字符数组里面,并将每个单词单独存放到vector<string>里面。
因为存在数组里的数据是读取一行的数据,所以需要把其转换为单独的单词。
我的方法是遇到空格之后将其前面的字符都拷贝到一个string中,然后将标点符号处理掉,最后push_back到vector<string>里。
最后发现最后一个单词没有push_back到vector<string>里,原来是到文章最后的时候没有空格了,所以最后一个单词没有进行处理。
总结:思考问题的时候要全面,尤其是遇到边界值的问题,这种问题需要格外小心,有时候容易忽视。
比如:整数的加法应该在其范围内进行,超出范围就会溢出,这时就应该对边界值进行判断。
还有很多诸如此类的问题,平常普通的算法其实都能够进行处理,边界值的问题更需要格外注意。
这是自己对于今天做练习的一些感悟。。。。。