由于去ARM公司面试被狠狠的打击了,让我彻底意识到自己技术功底不扎实。
从这篇博文起,将连续记录《C++ Primer》和《数据结构》的感悟。可能我理解比较肤浅,更多是摘录,但相信对我技术的成长一定大有裨益。
Cerr和Clog
C++除了提供cout为标准输出流外,还提供了cerr(standard error)和clog(general information about the execution of the program)两个输出流。看到网上很多人将cerr和clog都说是输出错误信息,似乎和Primer中的意思不符(见前面两个括号的解释)。
网上有人说:cerr是不经过缓冲区直接输出,而clog是经过缓冲区再输出。我做了个测试,输出10000次test,重复100次,去平均时间。cerr花费5.23915s,clog花费4.03324s。确实clog更加快一些。
Reading an Unknown number of Inputs
如果我们希望读入若干数,但是又不知道数字个数怎么办呢?
int value = 0;
while(std::cin >> value)
......
根据Primer中说:以istream作为条件,其返回是对流状态的测试。也就是说:如果一切正常,那么返回True;如果遇到了结束符(end- of-file)或者遇到了错误(比如在上面这个例子中,输入不是一个integer),那么就会返回False。
而结束符(end-of-file)在window中是:ctrl+z然后按enter或return键,在unix或mac系统中,是ctrl-d。