![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
kof2001kop
这个作者很懒,什么都没留下…
展开
-
向文件写入宽字符
对于向文件写入宽字符,例如中文字符,stl中其实也有一些库是专门针对这个问题而生的。例如wfstream就是其中一个。在这里,我用到了wfstream来使宽字符输出到文件。#include using namespace std;int main(){ wfstream op("test.txt", ios::out); op.imbue((locale)"chs"原创 2012-03-17 11:30:08 · 1460 阅读 · 0 评论 -
输出流效率测试
这个问题Effective STL中有提过。今天编程时由于涉及到输出的效率,加上闲着没事,所以做了这测试。测试对象:1.cout2.ostream_iterator3.ostreambuf_iterator4.printf5.cout.put6.rdbuf()->sputn测试平台:1.6GHz处理器测试代码:#include原创 2013-01-12 13:30:03 · 862 阅读 · 0 评论 -
int()的作用
对于int(),相信大家都不陌生吧,最常见就是拿它用作强制类型转换。今天写个关于int()用法的总结。一.用于强制类型转换(返回无名对象)如:#include int main() { std::cout << int(7.8); //输出7} 或#include int main() { std::cout << int(); //输出0原创 2011-10-22 12:38:09 · 3882 阅读 · 0 评论 -
关于const的位置
如下两段代码:代码一:int main(){ const int a = 1; return 0;}代码二:int main(){ int const a = 1; return 0;} 上面两段代码内容一样,但const 和 int的位置不同。虽然两种都可以,但我更偏爱第二种,因为它可以理解成:成为常量的是int类型的值。在下例中将更明显:原创 2011-08-19 00:55:09 · 694 阅读 · 0 评论 -
map/set自动排序的陷阱
这里我想用一系列的代码来阐述这个问题.1:请看如下代码:#include #include using namespace std;int main(){ complex a(1, 2); map, int> k; //默认按小于排序 //k[a] = 5; return 0;}以上代码运行正常原创 2011-08-17 16:34:35 · 16112 阅读 · 1 评论 -
关于cin.getline()
在网上查过关于cin.getline()用法之类的文章,也翻阅过不少有关I/O的书籍,我便认为已深刻认识了cin.getline(),但一次意外的使用却使我百思不得其解,请看以下两段代码。 代码1: void main(){ char a[10]; cin.getline(a,10);//输入"123456789" cout a endl; //输出原创 2011-04-03 11:28:00 · 2936 阅读 · 2 评论 -
关于DEBUG版程序的检测错误的小技巧
在C++众多函数库中,防止或检测程序出错的库也有几个,例如断言------cassert(立即退出程序),异常-------exception(立即退出某域)等,其中也有一个很适合在调试中找出具体错误的库-------cerrno(仅显示错误信息)。 对于cerrno库,它可以直接显示出错误的原因,而不需要程序员去寻找出错的原因,可参考以下代码: #include #i原创 2012-03-29 15:59:20 · 861 阅读 · 0 评论 -
用&&和||代替if..else..
在C++中,像这样的表达式:expression1 && expression2如果expression1的值为零时,整个&&表达式就会结束,也就是说不会再去计算expression2了。&&表达式的这种计算策略,叫作短路求值(More Effective C++中叫作“骤死式”)。其实,如果我们利用这个特性,就可以用&&和||来代替if..else..。 if..else原创 2012-04-11 13:24:12 · 2863 阅读 · 0 评论 -
在函数内定义“局部函数”
在函数里也能定义函数?呵呵,这当然是不能的,但函数对象却是可以的。如果用旧的方法去定义一个函数对象,那就还要自己先编写一个函数类,这样还不够方便。 但C++11发布后,在函数内简便地定义“函数”(其实是函数对象)就成为了可能:#include int main(){ auto a = [](){std::cout << "Lambda is flexible!"原创 2012-04-04 11:43:15 · 7664 阅读 · 0 评论 -
关于自定义类型名和函数名相同
以前一直以为,在C++中定义了结构体类型后,可以直接这样用:struct T{};int main(){ T p; return 0;}但今天遇到一个问题,如果代码中还有一个与自定义类型同名的函数,还可以这样用吗?struct T{};void T(){}int main(){ T p; /原创 2012-04-03 10:56:21 · 2157 阅读 · 0 评论